├── .gitignore ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── zxj │ │ └── android │ │ └── source │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── cpp │ │ ├── CMakeLists.txt │ │ ├── include │ │ │ ├── android │ │ │ │ ├── asset_manager.h │ │ │ │ ├── asset_manager_jni.h │ │ │ │ ├── bitmap.h │ │ │ │ ├── configuration.h │ │ │ │ ├── input.h │ │ │ │ ├── keycodes.h │ │ │ │ ├── looper.h │ │ │ │ ├── native_activity.h │ │ │ │ ├── native_window.h │ │ │ │ ├── native_window_jni.h │ │ │ │ ├── obb.h │ │ │ │ ├── rect.h │ │ │ │ ├── sensor.h │ │ │ │ ├── storage_manager.h │ │ │ │ └── window.h │ │ │ ├── cpustats │ │ │ │ ├── CentralTendencyStatistics.h │ │ │ │ ├── README.txt │ │ │ │ └── ThreadCpuUsage.h │ │ │ ├── cutils │ │ │ │ ├── atomic-arm.h │ │ │ │ ├── atomic-arm64.h │ │ │ │ ├── atomic-inline.h │ │ │ │ ├── atomic-mips.h │ │ │ │ ├── atomic-mips64.h │ │ │ │ ├── atomic-x86.h │ │ │ │ ├── atomic-x86_64.h │ │ │ │ ├── atomic.h │ │ │ │ ├── bitops.h │ │ │ │ ├── log.h │ │ │ │ ├── properties.h │ │ │ │ └── sched_policy.h │ │ │ ├── gui │ │ │ │ ├── BitTube.h │ │ │ │ ├── BufferItemConsumer.h │ │ │ │ ├── BufferQueue.h │ │ │ │ ├── ConsumerBase.h │ │ │ │ ├── CpuConsumer.h │ │ │ │ ├── DisplayEventReceiver.h │ │ │ │ ├── DummyConsumer.h │ │ │ │ ├── GuiConfig.h │ │ │ │ ├── IDisplayEventConnection.h │ │ │ │ ├── IGraphicBufferAlloc.h │ │ │ │ ├── ISensorEventConnection.h │ │ │ │ ├── ISensorServer.h │ │ │ │ ├── ISurface.h │ │ │ │ ├── ISurfaceComposer.h │ │ │ │ ├── ISurfaceComposerClient.h │ │ │ │ ├── ISurfaceTexture.h │ │ │ │ ├── Sensor.h │ │ │ │ ├── SensorEventQueue.h │ │ │ │ ├── SensorManager.h │ │ │ │ ├── Surface.h │ │ │ │ ├── SurfaceComposerClient.h │ │ │ │ ├── SurfaceTexture.h │ │ │ │ └── SurfaceTextureClient.h │ │ │ ├── media │ │ │ │ ├── AudioBufferProvider.h │ │ │ │ ├── AudioEffect.h │ │ │ │ ├── AudioParameter.h │ │ │ │ ├── AudioRecord.h │ │ │ │ ├── AudioSystem.h │ │ │ │ ├── AudioTrack.h │ │ │ │ ├── EffectsFactoryApi.h │ │ │ │ ├── ExtendedAudioBufferProvider.h │ │ │ │ ├── IAudioFlinger.h │ │ │ │ ├── IAudioFlingerClient.h │ │ │ │ ├── IAudioPolicyService.h │ │ │ │ ├── IAudioRecord.h │ │ │ │ ├── IAudioTrack.h │ │ │ │ ├── ICrypto.h │ │ │ │ ├── IEffect.h │ │ │ │ ├── IEffectClient.h │ │ │ │ ├── IHDCP.h │ │ │ │ ├── IMediaDeathNotifier.h │ │ │ │ ├── IMediaMetadataRetriever.h │ │ │ │ ├── IMediaPlayer.h │ │ │ │ ├── IMediaPlayerClient.h │ │ │ │ ├── IMediaPlayerService.h │ │ │ │ ├── IMediaRecorder.h │ │ │ │ ├── IMediaRecorderClient.h │ │ │ │ ├── IOMX.h │ │ │ │ ├── IRemoteDisplay.h │ │ │ │ ├── IRemoteDisplayClient.h │ │ │ │ ├── IStreamSource.h │ │ │ │ ├── JetPlayer.h │ │ │ │ ├── MediaMetadataRetrieverInterface.h │ │ │ │ ├── MediaPlayerInterface.h │ │ │ │ ├── MediaProfiles.h │ │ │ │ ├── MediaRecorderBase.h │ │ │ │ ├── MemoryLeakTrackUtil.h │ │ │ │ ├── Metadata.h │ │ │ │ ├── SoundPool.h │ │ │ │ ├── ToneGenerator.h │ │ │ │ ├── Visualizer.h │ │ │ │ ├── editor │ │ │ │ │ └── II420ColorConverter.h │ │ │ │ ├── hardware │ │ │ │ │ ├── CryptoAPI.h │ │ │ │ │ ├── HDCPAPI.h │ │ │ │ │ ├── HardwareAPI.h │ │ │ │ │ ├── MetadataBufferType.h │ │ │ │ │ └── OMXPluginBase.h │ │ │ │ ├── mediametadataretriever.h │ │ │ │ ├── mediaplayer.h │ │ │ │ ├── mediarecorder.h │ │ │ │ ├── mediascanner.h │ │ │ │ ├── nbaio │ │ │ │ │ ├── AudioBufferProviderSource.h │ │ │ │ │ ├── AudioStreamInSource.h │ │ │ │ │ ├── AudioStreamOutSink.h │ │ │ │ │ ├── LibsndfileSink.h │ │ │ │ │ ├── LibsndfileSource.h │ │ │ │ │ ├── MonoPipe.h │ │ │ │ │ ├── MonoPipeReader.h │ │ │ │ │ ├── NBAIO.h │ │ │ │ │ ├── Pipe.h │ │ │ │ │ ├── PipeReader.h │ │ │ │ │ ├── SourceAudioBufferProvider.h │ │ │ │ │ └── roundup.h │ │ │ │ ├── openmax │ │ │ │ │ ├── OMX_Audio.h │ │ │ │ │ ├── OMX_Component.h │ │ │ │ │ ├── OMX_ContentPipe.h │ │ │ │ │ ├── OMX_Core.h │ │ │ │ │ ├── OMX_IVCommon.h │ │ │ │ │ ├── OMX_Image.h │ │ │ │ │ ├── OMX_Index.h │ │ │ │ │ ├── OMX_Other.h │ │ │ │ │ ├── OMX_Types.h │ │ │ │ │ └── OMX_Video.h │ │ │ │ └── stagefright │ │ │ │ │ ├── AACWriter.h │ │ │ │ │ ├── ACodec.h │ │ │ │ │ ├── AMRWriter.h │ │ │ │ │ ├── AudioPlayer.h │ │ │ │ │ ├── AudioSource.h │ │ │ │ │ ├── CameraSource.h │ │ │ │ │ ├── CameraSourceTimeLapse.h │ │ │ │ │ ├── ColorConverter.h │ │ │ │ │ ├── DataSource.h │ │ │ │ │ ├── FileSource.h │ │ │ │ │ ├── JPEGSource.h │ │ │ │ │ ├── MPEG2TSWriter.h │ │ │ │ │ ├── MPEG4Writer.h │ │ │ │ │ ├── MediaBuffer.h │ │ │ │ │ ├── MediaBufferGroup.h │ │ │ │ │ ├── MediaCodec.h │ │ │ │ │ ├── MediaCodecList.h │ │ │ │ │ ├── MediaDefs.h │ │ │ │ │ ├── MediaErrors.h │ │ │ │ │ ├── MediaExtractor.h │ │ │ │ │ ├── MediaSource.h │ │ │ │ │ ├── MediaWriter.h │ │ │ │ │ ├── MetaData.h │ │ │ │ │ ├── NativeWindowWrapper.h │ │ │ │ │ ├── NuMediaExtractor.h │ │ │ │ │ ├── OMXClient.h │ │ │ │ │ ├── OMXCodec.h │ │ │ │ │ ├── SkipCutBuffer.h │ │ │ │ │ ├── StagefrightMediaScanner.h │ │ │ │ │ ├── SurfaceMediaSource.h │ │ │ │ │ ├── TimeSource.h │ │ │ │ │ ├── Utils.h │ │ │ │ │ ├── YUVCanvas.h │ │ │ │ │ ├── YUVImage.h │ │ │ │ │ ├── foundation │ │ │ │ │ ├── AAtomizer.h │ │ │ │ │ ├── ABase.h │ │ │ │ │ ├── ABitReader.h │ │ │ │ │ ├── ABuffer.h │ │ │ │ │ ├── ADebug.h │ │ │ │ │ ├── AHandler.h │ │ │ │ │ ├── AHandlerReflector.h │ │ │ │ │ ├── AHierarchicalStateMachine.h │ │ │ │ │ ├── ALooper.h │ │ │ │ │ ├── ALooperRoster.h │ │ │ │ │ ├── AMessage.h │ │ │ │ │ ├── AString.h │ │ │ │ │ ├── base64.h │ │ │ │ │ └── hexdump.h │ │ │ │ │ └── timedtext │ │ │ │ │ └── TimedTextDriver.h │ │ │ ├── powermanager │ │ │ │ ├── IPowerManager.h │ │ │ │ └── PowerManager.h │ │ │ ├── private │ │ │ │ ├── binder │ │ │ │ │ ├── Static.h │ │ │ │ │ └── binder_module.h │ │ │ │ ├── gui │ │ │ │ │ ├── ComposerService.h │ │ │ │ │ └── LayerState.h │ │ │ │ ├── ui │ │ │ │ │ └── RegionHelper.h │ │ │ │ └── utils │ │ │ │ │ └── Static.h │ │ │ ├── ui │ │ │ │ ├── ANativeObjectBase.h │ │ │ │ ├── DisplayInfo.h │ │ │ │ ├── Fence.h │ │ │ │ ├── FramebufferNativeWindow.h │ │ │ │ ├── GraphicBuffer.h │ │ │ │ ├── GraphicBufferAllocator.h │ │ │ │ ├── GraphicBufferMapper.h │ │ │ │ ├── PixelFormat.h │ │ │ │ ├── Point.h │ │ │ │ ├── Rect.h │ │ │ │ ├── Region.h │ │ │ │ └── UiConfig.h │ │ │ └── utils │ │ │ │ ├── AndroidThreads.h │ │ │ │ ├── Atomic.h │ │ │ │ ├── BasicHashtable.h │ │ │ │ ├── BitSet.h │ │ │ │ ├── BlobCache.h │ │ │ │ ├── BufferedTextOutput.h │ │ │ │ ├── ByteOrder.h │ │ │ │ ├── CallStack.h │ │ │ │ ├── Compat.h │ │ │ │ ├── Condition.h │ │ │ │ ├── Debug.h │ │ │ │ ├── Endian.h │ │ │ │ ├── Errors.h │ │ │ │ ├── FileMap.h │ │ │ │ ├── Flattenable.h │ │ │ │ ├── Functor.h │ │ │ │ ├── GenerationCache.h │ │ │ │ ├── KeyedVector.h │ │ │ │ ├── LinearTransform.h │ │ │ │ ├── List.h │ │ │ │ ├── Log.h │ │ │ │ ├── Looper.h │ │ │ │ ├── Mutex.h │ │ │ │ ├── PropertyMap.h │ │ │ │ ├── RWLock.h │ │ │ │ ├── RefBase.h │ │ │ │ ├── SharedBuffer.h │ │ │ │ ├── Singleton.h │ │ │ │ ├── SortedVector.h │ │ │ │ ├── StopWatch.h │ │ │ │ ├── String16.h │ │ │ │ ├── String8.h │ │ │ │ ├── StringArray.h │ │ │ │ ├── StrongPointer.h │ │ │ │ ├── SystemClock.h │ │ │ │ ├── TextOutput.h │ │ │ │ ├── Thread.h │ │ │ │ ├── ThreadDefs.h │ │ │ │ ├── Timers.h │ │ │ │ ├── Tokenizer.h │ │ │ │ ├── Trace.h │ │ │ │ ├── TypeHelpers.h │ │ │ │ ├── Unicode.h │ │ │ │ ├── UniquePtr.h │ │ │ │ ├── Vector.h │ │ │ │ ├── VectorImpl.h │ │ │ │ ├── WorkQueue.h │ │ │ │ ├── ZipFileCRO.h │ │ │ │ ├── ZipFileRO.h │ │ │ │ ├── ZipUtils.h │ │ │ │ ├── ashmem.h │ │ │ │ ├── misc.h │ │ │ │ └── threads.h │ │ ├── libstagefright │ │ │ ├── AACExtractor.cpp │ │ │ ├── AACWriter.cpp │ │ │ ├── ACodec.cpp │ │ │ ├── AMRExtractor.cpp │ │ │ ├── AMRWriter.cpp │ │ │ ├── AVIExtractor.cpp │ │ │ ├── Android.mk │ │ │ ├── AudioPlayer.cpp │ │ │ ├── AudioSource.cpp │ │ │ ├── AwesomePlayer.cpp │ │ │ ├── CameraSource.cpp │ │ │ ├── CameraSourceTimeLapse.cpp │ │ │ ├── DRMExtractor.cpp │ │ │ ├── DataSource.cpp │ │ │ ├── ESDS.cpp │ │ │ ├── FLACExtractor.cpp │ │ │ ├── FileSource.cpp │ │ │ ├── FragmentedMP4Extractor.cpp │ │ │ ├── HTTPBase.cpp │ │ │ ├── JPEGSource.cpp │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ ├── MP3Extractor.cpp │ │ │ ├── MPEG2TSWriter.cpp │ │ │ ├── MPEG4Extractor.cpp │ │ │ ├── MPEG4Writer.cpp │ │ │ ├── MediaBuffer.cpp │ │ │ ├── MediaBufferGroup.cpp │ │ │ ├── MediaCodec.cpp │ │ │ ├── MediaCodecList.cpp │ │ │ ├── MediaDefs.cpp │ │ │ ├── MediaExtractor.cpp │ │ │ ├── MediaSource.cpp │ │ │ ├── MetaData.cpp │ │ │ ├── NOTICE │ │ │ ├── NuCachedSource2.cpp │ │ │ ├── NuMediaExtractor.cpp │ │ │ ├── OMXClient.cpp │ │ │ ├── OMXCodec.cpp │ │ │ ├── OggExtractor.cpp │ │ │ ├── SampleIterator.cpp │ │ │ ├── SampleTable.cpp │ │ │ ├── SkipCutBuffer.cpp │ │ │ ├── StagefrightMediaScanner.cpp │ │ │ ├── StagefrightMetadataRetriever.cpp │ │ │ ├── SurfaceMediaSource.cpp │ │ │ ├── ThrottledSource.cpp │ │ │ ├── TimeSource.cpp │ │ │ ├── TimedEventQueue.cpp │ │ │ ├── Utils.cpp │ │ │ ├── VBRISeeker.cpp │ │ │ ├── WAVExtractor.cpp │ │ │ ├── WVMExtractor.cpp │ │ │ ├── XINGSeeker.cpp │ │ │ ├── avc_utils.cpp │ │ │ ├── chromium_http │ │ │ │ ├── Android.mk │ │ │ │ ├── ChromiumHTTPDataSource.cpp │ │ │ │ ├── DataUriSource.cpp │ │ │ │ ├── chromium_http_stub.cpp │ │ │ │ ├── support.cpp │ │ │ │ └── support.h │ │ │ ├── chromium_http_stub.cpp │ │ │ ├── codecs │ │ │ │ ├── Android.mk │ │ │ │ ├── aacdec │ │ │ │ │ ├── Android.mk │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ ├── NOTICE │ │ │ │ │ ├── SoftAAC2.cpp │ │ │ │ │ └── SoftAAC2.h │ │ │ │ ├── aacenc │ │ │ │ │ ├── AACEncoder.cpp │ │ │ │ │ ├── Android.mk │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ ├── NOTICE │ │ │ │ │ ├── SampleCode │ │ │ │ │ │ ├── AAC_E_SAMPLES.c │ │ │ │ │ │ ├── Android.mk │ │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ │ └── NOTICE │ │ │ │ │ ├── SoftAACEncoder.cpp │ │ │ │ │ ├── SoftAACEncoder.h │ │ │ │ │ ├── SoftAACEncoder2.cpp │ │ │ │ │ ├── SoftAACEncoder2.h │ │ │ │ │ ├── basic_op │ │ │ │ │ │ ├── basic_op.h │ │ │ │ │ │ ├── basicop2.c │ │ │ │ │ │ ├── oper_32b.c │ │ │ │ │ │ ├── oper_32b.h │ │ │ │ │ │ ├── typedef.h │ │ │ │ │ │ └── typedefs.h │ │ │ │ │ ├── doc │ │ │ │ │ │ └── voAACEncoderSDK.pdf │ │ │ │ │ ├── inc │ │ │ │ │ │ ├── aac_rom.h │ │ │ │ │ │ ├── aacenc_core.h │ │ │ │ │ │ ├── adj_thr.h │ │ │ │ │ │ ├── adj_thr_data.h │ │ │ │ │ │ ├── band_nrg.h │ │ │ │ │ │ ├── bit_cnt.h │ │ │ │ │ │ ├── bitbuffer.h │ │ │ │ │ │ ├── bitenc.h │ │ │ │ │ │ ├── block_switch.h │ │ │ │ │ │ ├── channel_map.h │ │ │ │ │ │ ├── config.h │ │ │ │ │ │ ├── dyn_bits.h │ │ │ │ │ │ ├── grp_data.h │ │ │ │ │ │ ├── interface.h │ │ │ │ │ │ ├── line_pe.h │ │ │ │ │ │ ├── memalign.h │ │ │ │ │ │ ├── ms_stereo.h │ │ │ │ │ │ ├── pre_echo_control.h │ │ │ │ │ │ ├── psy_configuration.h │ │ │ │ │ │ ├── psy_const.h │ │ │ │ │ │ ├── psy_data.h │ │ │ │ │ │ ├── psy_main.h │ │ │ │ │ │ ├── qc_data.h │ │ │ │ │ │ ├── qc_main.h │ │ │ │ │ │ ├── quantize.h │ │ │ │ │ │ ├── sf_estim.h │ │ │ │ │ │ ├── spreading.h │ │ │ │ │ │ ├── stat_bits.h │ │ │ │ │ │ ├── tns.h │ │ │ │ │ │ ├── tns_func.h │ │ │ │ │ │ ├── tns_param.h │ │ │ │ │ │ └── transform.h │ │ │ │ │ ├── patent_disclaimer.txt │ │ │ │ │ └── src │ │ │ │ │ │ ├── aac_rom.c │ │ │ │ │ │ ├── aacenc.c │ │ │ │ │ │ ├── aacenc_core.c │ │ │ │ │ │ ├── adj_thr.c │ │ │ │ │ │ ├── asm │ │ │ │ │ │ ├── ARMV5E │ │ │ │ │ │ │ ├── AutoCorrelation_v5.s │ │ │ │ │ │ │ ├── CalcWindowEnergy_v5.s │ │ │ │ │ │ │ ├── PrePostMDCT_v5.s │ │ │ │ │ │ │ ├── R4R8First_v5.s │ │ │ │ │ │ │ ├── Radix4FFT_v5.s │ │ │ │ │ │ │ └── band_nrg_v5.s │ │ │ │ │ │ └── ARMV7 │ │ │ │ │ │ │ ├── PrePostMDCT_v7.s │ │ │ │ │ │ │ ├── R4R8First_v7.s │ │ │ │ │ │ │ └── Radix4FFT_v7.s │ │ │ │ │ │ ├── band_nrg.c │ │ │ │ │ │ ├── bit_cnt.c │ │ │ │ │ │ ├── bitbuffer.c │ │ │ │ │ │ ├── bitenc.c │ │ │ │ │ │ ├── block_switch.c │ │ │ │ │ │ ├── channel_map.c │ │ │ │ │ │ ├── dyn_bits.c │ │ │ │ │ │ ├── grp_data.c │ │ │ │ │ │ ├── interface.c │ │ │ │ │ │ ├── line_pe.c │ │ │ │ │ │ ├── memalign.c │ │ │ │ │ │ ├── ms_stereo.c │ │ │ │ │ │ ├── pre_echo_control.c │ │ │ │ │ │ ├── psy_configuration.c │ │ │ │ │ │ ├── psy_main.c │ │ │ │ │ │ ├── qc_main.c │ │ │ │ │ │ ├── quantize.c │ │ │ │ │ │ ├── sf_estim.c │ │ │ │ │ │ ├── spreading.c │ │ │ │ │ │ ├── stat_bits.c │ │ │ │ │ │ ├── tns.c │ │ │ │ │ │ └── transform.c │ │ │ │ ├── amrnb │ │ │ │ │ ├── Android.mk │ │ │ │ │ ├── common │ │ │ │ │ │ ├── Android.mk │ │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ │ ├── NOTICE │ │ │ │ │ │ ├── include │ │ │ │ │ │ │ ├── abs_s.h │ │ │ │ │ │ │ ├── add.h │ │ │ │ │ │ │ ├── az_lsp.h │ │ │ │ │ │ │ ├── basic_op.h │ │ │ │ │ │ │ ├── basic_op_arm_gcc_v5.h │ │ │ │ │ │ │ ├── basic_op_arm_v5.h │ │ │ │ │ │ │ ├── basic_op_c_equivalent.h │ │ │ │ │ │ │ ├── basicop_malloc.h │ │ │ │ │ │ │ ├── bitno_tab.h │ │ │ │ │ │ │ ├── bitreorder_tab.h │ │ │ │ │ │ │ ├── bits2prm.h │ │ │ │ │ │ │ ├── bytesused.h │ │ │ │ │ │ │ ├── cnst.h │ │ │ │ │ │ │ ├── cnst_vad.h │ │ │ │ │ │ │ ├── copy.h │ │ │ │ │ │ │ ├── d_gain_c.h │ │ │ │ │ │ │ ├── d_gain_p.h │ │ │ │ │ │ │ ├── d_plsf.h │ │ │ │ │ │ │ ├── div_32.h │ │ │ │ │ │ │ ├── div_s.h │ │ │ │ │ │ │ ├── dtx_common_def.h │ │ │ │ │ │ │ ├── extract_h.h │ │ │ │ │ │ │ ├── extract_l.h │ │ │ │ │ │ │ ├── frame.h │ │ │ │ │ │ │ ├── frame_type_3gpp.h │ │ │ │ │ │ │ ├── gc_pred.h │ │ │ │ │ │ │ ├── gmed_n.h │ │ │ │ │ │ │ ├── gsm_amr_typedefs.h │ │ │ │ │ │ │ ├── int_lpc.h │ │ │ │ │ │ │ ├── int_lsf.h │ │ │ │ │ │ │ ├── inv_sqrt.h │ │ │ │ │ │ │ ├── l_abs.h │ │ │ │ │ │ │ ├── l_add.h │ │ │ │ │ │ │ ├── l_add_c.h │ │ │ │ │ │ │ ├── l_comp.h │ │ │ │ │ │ │ ├── l_deposit_h.h │ │ │ │ │ │ │ ├── l_deposit_l.h │ │ │ │ │ │ │ ├── l_extract.h │ │ │ │ │ │ │ ├── l_mac.h │ │ │ │ │ │ │ ├── l_msu.h │ │ │ │ │ │ │ ├── l_mult.h │ │ │ │ │ │ │ ├── l_negate.h │ │ │ │ │ │ │ ├── l_shl.h │ │ │ │ │ │ │ ├── l_shr.h │ │ │ │ │ │ │ ├── l_shr_r.h │ │ │ │ │ │ │ ├── l_sub.h │ │ │ │ │ │ │ ├── log2.h │ │ │ │ │ │ │ ├── log2_norm.h │ │ │ │ │ │ │ ├── lsfwt.h │ │ │ │ │ │ │ ├── lsp.h │ │ │ │ │ │ │ ├── lsp_az.h │ │ │ │ │ │ │ ├── lsp_lsf.h │ │ │ │ │ │ │ ├── lsp_tab.h │ │ │ │ │ │ │ ├── mac_32.h │ │ │ │ │ │ │ ├── mode.h │ │ │ │ │ │ │ ├── mpy_32.h │ │ │ │ │ │ │ ├── mpy_32_16.h │ │ │ │ │ │ │ ├── mult.h │ │ │ │ │ │ │ ├── mult_r.h │ │ │ │ │ │ │ ├── n_proc.h │ │ │ │ │ │ │ ├── negate.h │ │ │ │ │ │ │ ├── norm_l.h │ │ │ │ │ │ │ ├── norm_s.h │ │ │ │ │ │ │ ├── oper_32b.h │ │ │ │ │ │ │ ├── p_ol_wgh.h │ │ │ │ │ │ │ ├── pow2.h │ │ │ │ │ │ │ ├── pred_lt.h │ │ │ │ │ │ │ ├── q_plsf.h │ │ │ │ │ │ │ ├── q_plsf_3_tbl.h │ │ │ │ │ │ │ ├── q_plsf_5_tbl.h │ │ │ │ │ │ │ ├── qgain475_tab.h │ │ │ │ │ │ │ ├── qua_gain.h │ │ │ │ │ │ │ ├── qua_gain_tbl.h │ │ │ │ │ │ │ ├── reorder.h │ │ │ │ │ │ │ ├── residu.h │ │ │ │ │ │ │ ├── reverse_bits.h │ │ │ │ │ │ │ ├── round.h │ │ │ │ │ │ │ ├── set_zero.h │ │ │ │ │ │ │ ├── shl.h │ │ │ │ │ │ │ ├── shr.h │ │ │ │ │ │ │ ├── shr_r.h │ │ │ │ │ │ │ ├── sqrt_l.h │ │ │ │ │ │ │ ├── sub.h │ │ │ │ │ │ │ ├── syn_filt.h │ │ │ │ │ │ │ ├── typedef.h │ │ │ │ │ │ │ ├── vad.h │ │ │ │ │ │ │ ├── vad1.h │ │ │ │ │ │ │ ├── vad2.h │ │ │ │ │ │ │ ├── weight_a.h │ │ │ │ │ │ │ ├── window_tab.h │ │ │ │ │ │ │ └── wmf_to_ets.h │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── add.cpp │ │ │ │ │ │ │ ├── az_lsp.cpp │ │ │ │ │ │ │ ├── bitno_tab.cpp │ │ │ │ │ │ │ ├── bitreorder_tab.cpp │ │ │ │ │ │ │ ├── bits2prm.cpp │ │ │ │ │ │ │ ├── bytesused.cpp │ │ │ │ │ │ │ ├── c2_9pf_tab.cpp │ │ │ │ │ │ │ ├── copy.cpp │ │ │ │ │ │ │ ├── div_32.cpp │ │ │ │ │ │ │ ├── div_s.cpp │ │ │ │ │ │ │ ├── extract_h.cpp │ │ │ │ │ │ │ ├── extract_l.cpp │ │ │ │ │ │ │ ├── gains_tbl.cpp │ │ │ │ │ │ │ ├── gc_pred.cpp │ │ │ │ │ │ │ ├── gmed_n.cpp │ │ │ │ │ │ │ ├── gray_tbl.cpp │ │ │ │ │ │ │ ├── grid_tbl.cpp │ │ │ │ │ │ │ ├── int_lpc.cpp │ │ │ │ │ │ │ ├── inv_sqrt.cpp │ │ │ │ │ │ │ ├── inv_sqrt_tbl.cpp │ │ │ │ │ │ │ ├── l_abs.cpp │ │ │ │ │ │ │ ├── l_deposit_h.cpp │ │ │ │ │ │ │ ├── l_deposit_l.cpp │ │ │ │ │ │ │ ├── l_shr_r.cpp │ │ │ │ │ │ │ ├── log2.cpp │ │ │ │ │ │ │ ├── log2_norm.cpp │ │ │ │ │ │ │ ├── log2_tbl.cpp │ │ │ │ │ │ │ ├── lsfwt.cpp │ │ │ │ │ │ │ ├── lsp.cpp │ │ │ │ │ │ │ ├── lsp_az.cpp │ │ │ │ │ │ │ ├── lsp_lsf.cpp │ │ │ │ │ │ │ ├── lsp_lsf_tbl.cpp │ │ │ │ │ │ │ ├── lsp_tab.cpp │ │ │ │ │ │ │ ├── mult_r.cpp │ │ │ │ │ │ │ ├── negate.cpp │ │ │ │ │ │ │ ├── norm_l.cpp │ │ │ │ │ │ │ ├── norm_s.cpp │ │ │ │ │ │ │ ├── overflow_tbl.cpp │ │ │ │ │ │ │ ├── ph_disp_tab.cpp │ │ │ │ │ │ │ ├── pow2.cpp │ │ │ │ │ │ │ ├── pow2_tbl.cpp │ │ │ │ │ │ │ ├── pred_lt.cpp │ │ │ │ │ │ │ ├── q_plsf.cpp │ │ │ │ │ │ │ ├── q_plsf_3.cpp │ │ │ │ │ │ │ ├── q_plsf_3_tbl.cpp │ │ │ │ │ │ │ ├── q_plsf_5.cpp │ │ │ │ │ │ │ ├── q_plsf_5_tbl.cpp │ │ │ │ │ │ │ ├── qua_gain_tbl.cpp │ │ │ │ │ │ │ ├── reorder.cpp │ │ │ │ │ │ │ ├── residu.cpp │ │ │ │ │ │ │ ├── round.cpp │ │ │ │ │ │ │ ├── set_zero.cpp │ │ │ │ │ │ │ ├── shr.cpp │ │ │ │ │ │ │ ├── shr_r.cpp │ │ │ │ │ │ │ ├── sqrt_l.cpp │ │ │ │ │ │ │ ├── sqrt_l_tbl.cpp │ │ │ │ │ │ │ ├── sub.cpp │ │ │ │ │ │ │ ├── syn_filt.cpp │ │ │ │ │ │ │ ├── vad1.cpp │ │ │ │ │ │ │ ├── weight_a.cpp │ │ │ │ │ │ │ └── window_tab.cpp │ │ │ │ │ ├── dec │ │ │ │ │ │ ├── Android.mk │ │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ │ ├── NOTICE │ │ │ │ │ │ ├── SoftAMR.cpp │ │ │ │ │ │ ├── SoftAMR.h │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── a_refl.cpp │ │ │ │ │ │ │ ├── a_refl.h │ │ │ │ │ │ │ ├── agc.cpp │ │ │ │ │ │ │ ├── agc.h │ │ │ │ │ │ │ ├── amrdecode.cpp │ │ │ │ │ │ │ ├── amrdecode.h │ │ │ │ │ │ │ ├── b_cn_cod.cpp │ │ │ │ │ │ │ ├── b_cn_cod.h │ │ │ │ │ │ │ ├── bgnscd.cpp │ │ │ │ │ │ │ ├── bgnscd.h │ │ │ │ │ │ │ ├── c_g_aver.cpp │ │ │ │ │ │ │ ├── c_g_aver.h │ │ │ │ │ │ │ ├── d1035pf.cpp │ │ │ │ │ │ │ ├── d1035pf.h │ │ │ │ │ │ │ ├── d2_11pf.cpp │ │ │ │ │ │ │ ├── d2_11pf.h │ │ │ │ │ │ │ ├── d2_9pf.cpp │ │ │ │ │ │ │ ├── d2_9pf.h │ │ │ │ │ │ │ ├── d3_14pf.cpp │ │ │ │ │ │ │ ├── d3_14pf.h │ │ │ │ │ │ │ ├── d4_17pf.cpp │ │ │ │ │ │ │ ├── d4_17pf.h │ │ │ │ │ │ │ ├── d8_31pf.cpp │ │ │ │ │ │ │ ├── d8_31pf.h │ │ │ │ │ │ │ ├── d_gain_c.cpp │ │ │ │ │ │ │ ├── d_gain_p.cpp │ │ │ │ │ │ │ ├── d_plsf.cpp │ │ │ │ │ │ │ ├── d_plsf_3.cpp │ │ │ │ │ │ │ ├── d_plsf_5.cpp │ │ │ │ │ │ │ ├── dec_amr.cpp │ │ │ │ │ │ │ ├── dec_amr.h │ │ │ │ │ │ │ ├── dec_gain.cpp │ │ │ │ │ │ │ ├── dec_gain.h │ │ │ │ │ │ │ ├── dec_input_format_tab.cpp │ │ │ │ │ │ │ ├── dec_lag3.cpp │ │ │ │ │ │ │ ├── dec_lag3.h │ │ │ │ │ │ │ ├── dec_lag6.cpp │ │ │ │ │ │ │ ├── dec_lag6.h │ │ │ │ │ │ │ ├── dtx_dec.cpp │ │ │ │ │ │ │ ├── dtx_dec.h │ │ │ │ │ │ │ ├── ec_gains.cpp │ │ │ │ │ │ │ ├── ec_gains.h │ │ │ │ │ │ │ ├── ex_ctrl.cpp │ │ │ │ │ │ │ ├── ex_ctrl.h │ │ │ │ │ │ │ ├── gsmamr_dec.h │ │ │ │ │ │ │ ├── if2_to_ets.cpp │ │ │ │ │ │ │ ├── if2_to_ets.h │ │ │ │ │ │ │ ├── int_lsf.cpp │ │ │ │ │ │ │ ├── lsp_avg.cpp │ │ │ │ │ │ │ ├── lsp_avg.h │ │ │ │ │ │ │ ├── ph_disp.cpp │ │ │ │ │ │ │ ├── ph_disp.h │ │ │ │ │ │ │ ├── post_pro.cpp │ │ │ │ │ │ │ ├── post_pro.h │ │ │ │ │ │ │ ├── preemph.cpp │ │ │ │ │ │ │ ├── preemph.h │ │ │ │ │ │ │ ├── pstfilt.cpp │ │ │ │ │ │ │ ├── pstfilt.h │ │ │ │ │ │ │ ├── qgain475_tab.cpp │ │ │ │ │ │ │ ├── sp_dec.cpp │ │ │ │ │ │ │ ├── sp_dec.h │ │ │ │ │ │ │ └── wmf_to_ets.cpp │ │ │ │ │ ├── enc │ │ │ │ │ │ ├── Android.mk │ │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ │ ├── NOTICE │ │ │ │ │ │ ├── SoftAMRNBEncoder.cpp │ │ │ │ │ │ ├── SoftAMRNBEncoder.h │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── amrencode.cpp │ │ │ │ │ │ │ ├── amrencode.h │ │ │ │ │ │ │ ├── autocorr.cpp │ │ │ │ │ │ │ ├── autocorr.h │ │ │ │ │ │ │ ├── c1035pf.cpp │ │ │ │ │ │ │ ├── c1035pf.h │ │ │ │ │ │ │ ├── c2_11pf.cpp │ │ │ │ │ │ │ ├── c2_11pf.h │ │ │ │ │ │ │ ├── c2_9pf.cpp │ │ │ │ │ │ │ ├── c2_9pf.h │ │ │ │ │ │ │ ├── c3_14pf.cpp │ │ │ │ │ │ │ ├── c3_14pf.h │ │ │ │ │ │ │ ├── c4_17pf.cpp │ │ │ │ │ │ │ ├── c4_17pf.h │ │ │ │ │ │ │ ├── c8_31pf.cpp │ │ │ │ │ │ │ ├── c8_31pf.h │ │ │ │ │ │ │ ├── calc_cor.cpp │ │ │ │ │ │ │ ├── calc_cor.h │ │ │ │ │ │ │ ├── calc_en.cpp │ │ │ │ │ │ │ ├── calc_en.h │ │ │ │ │ │ │ ├── cbsearch.cpp │ │ │ │ │ │ │ ├── cbsearch.h │ │ │ │ │ │ │ ├── cl_ltp.cpp │ │ │ │ │ │ │ ├── cl_ltp.h │ │ │ │ │ │ │ ├── cod_amr.cpp │ │ │ │ │ │ │ ├── cod_amr.h │ │ │ │ │ │ │ ├── convolve.cpp │ │ │ │ │ │ │ ├── convolve.h │ │ │ │ │ │ │ ├── cor_h.cpp │ │ │ │ │ │ │ ├── cor_h.h │ │ │ │ │ │ │ ├── cor_h_x.cpp │ │ │ │ │ │ │ ├── cor_h_x.h │ │ │ │ │ │ │ ├── cor_h_x2.cpp │ │ │ │ │ │ │ ├── cor_h_x2.h │ │ │ │ │ │ │ ├── corrwght_tab.cpp │ │ │ │ │ │ │ ├── dtx_enc.cpp │ │ │ │ │ │ │ ├── dtx_enc.h │ │ │ │ │ │ │ ├── enc_lag3.cpp │ │ │ │ │ │ │ ├── enc_lag3.h │ │ │ │ │ │ │ ├── enc_lag6.cpp │ │ │ │ │ │ │ ├── enc_lag6.h │ │ │ │ │ │ │ ├── enc_output_format_tab.cpp │ │ │ │ │ │ │ ├── ets_to_if2.cpp │ │ │ │ │ │ │ ├── ets_to_if2.h │ │ │ │ │ │ │ ├── ets_to_wmf.cpp │ │ │ │ │ │ │ ├── ets_to_wmf.h │ │ │ │ │ │ │ ├── g_adapt.cpp │ │ │ │ │ │ │ ├── g_adapt.h │ │ │ │ │ │ │ ├── g_code.cpp │ │ │ │ │ │ │ ├── g_code.h │ │ │ │ │ │ │ ├── g_pitch.cpp │ │ │ │ │ │ │ ├── g_pitch.h │ │ │ │ │ │ │ ├── gain_q.cpp │ │ │ │ │ │ │ ├── gain_q.h │ │ │ │ │ │ │ ├── gsmamr_enc.h │ │ │ │ │ │ │ ├── hp_max.cpp │ │ │ │ │ │ │ ├── hp_max.h │ │ │ │ │ │ │ ├── inter_36.cpp │ │ │ │ │ │ │ ├── inter_36.h │ │ │ │ │ │ │ ├── inter_36_tab.cpp │ │ │ │ │ │ │ ├── inter_36_tab.h │ │ │ │ │ │ │ ├── l_comp.cpp │ │ │ │ │ │ │ ├── l_extract.cpp │ │ │ │ │ │ │ ├── l_negate.cpp │ │ │ │ │ │ │ ├── lag_wind.cpp │ │ │ │ │ │ │ ├── lag_wind.h │ │ │ │ │ │ │ ├── lag_wind_tab.cpp │ │ │ │ │ │ │ ├── lag_wind_tab.h │ │ │ │ │ │ │ ├── levinson.cpp │ │ │ │ │ │ │ ├── levinson.h │ │ │ │ │ │ │ ├── lpc.cpp │ │ │ │ │ │ │ ├── lpc.h │ │ │ │ │ │ │ ├── ol_ltp.cpp │ │ │ │ │ │ │ ├── ol_ltp.h │ │ │ │ │ │ │ ├── p_ol_wgh.cpp │ │ │ │ │ │ │ ├── pitch_fr.cpp │ │ │ │ │ │ │ ├── pitch_fr.h │ │ │ │ │ │ │ ├── pitch_ol.cpp │ │ │ │ │ │ │ ├── pitch_ol.h │ │ │ │ │ │ │ ├── pre_big.cpp │ │ │ │ │ │ │ ├── pre_big.h │ │ │ │ │ │ │ ├── pre_proc.cpp │ │ │ │ │ │ │ ├── pre_proc.h │ │ │ │ │ │ │ ├── prm2bits.cpp │ │ │ │ │ │ │ ├── prm2bits.h │ │ │ │ │ │ │ ├── q_gain_c.cpp │ │ │ │ │ │ │ ├── q_gain_c.h │ │ │ │ │ │ │ ├── q_gain_p.cpp │ │ │ │ │ │ │ ├── q_gain_p.h │ │ │ │ │ │ │ ├── qgain475.cpp │ │ │ │ │ │ │ ├── qgain475.h │ │ │ │ │ │ │ ├── qgain795.cpp │ │ │ │ │ │ │ ├── qgain795.h │ │ │ │ │ │ │ ├── qua_gain.cpp │ │ │ │ │ │ │ ├── s10_8pf.cpp │ │ │ │ │ │ │ ├── s10_8pf.h │ │ │ │ │ │ │ ├── set_sign.cpp │ │ │ │ │ │ │ ├── set_sign.h │ │ │ │ │ │ │ ├── sid_sync.cpp │ │ │ │ │ │ │ ├── sid_sync.h │ │ │ │ │ │ │ ├── sp_enc.cpp │ │ │ │ │ │ │ ├── sp_enc.h │ │ │ │ │ │ │ ├── spreproc.cpp │ │ │ │ │ │ │ ├── spreproc.h │ │ │ │ │ │ │ ├── spstproc.cpp │ │ │ │ │ │ │ ├── spstproc.h │ │ │ │ │ │ │ ├── ton_stab.cpp │ │ │ │ │ │ │ └── ton_stab.h │ │ │ │ │ └── patent_disclaimer.txt │ │ │ │ ├── amrwb │ │ │ │ │ ├── Android.mk │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ ├── NOTICE │ │ │ │ │ ├── include │ │ │ │ │ │ └── pvamrwbdecoder_api.h │ │ │ │ │ ├── patent_disclaimer.txt │ │ │ │ │ └── src │ │ │ │ │ │ ├── agc2_amr_wb.cpp │ │ │ │ │ │ ├── band_pass_6k_7k.cpp │ │ │ │ │ │ ├── dec_acelp_2p_in_64.cpp │ │ │ │ │ │ ├── dec_acelp_4p_in_64.cpp │ │ │ │ │ │ ├── dec_alg_codebook.cpp │ │ │ │ │ │ ├── dec_gain2_amr_wb.cpp │ │ │ │ │ │ ├── deemphasis_32.cpp │ │ │ │ │ │ ├── dtx.h │ │ │ │ │ │ ├── dtx_decoder_amr_wb.cpp │ │ │ │ │ │ ├── e_pv_amrwbdec.h │ │ │ │ │ │ ├── get_amr_wb_bits.cpp │ │ │ │ │ │ ├── get_amr_wb_bits.h │ │ │ │ │ │ ├── highpass_400hz_at_12k8.cpp │ │ │ │ │ │ ├── highpass_50hz_at_12k8.cpp │ │ │ │ │ │ ├── homing_amr_wb_dec.cpp │ │ │ │ │ │ ├── interpolate_isp.cpp │ │ │ │ │ │ ├── isf_extrapolation.cpp │ │ │ │ │ │ ├── isp_az.cpp │ │ │ │ │ │ ├── isp_isf.cpp │ │ │ │ │ │ ├── lagconceal.cpp │ │ │ │ │ │ ├── low_pass_filt_7k.cpp │ │ │ │ │ │ ├── median5.cpp │ │ │ │ │ │ ├── mime_io.cpp │ │ │ │ │ │ ├── mime_io.h │ │ │ │ │ │ ├── noise_gen_amrwb.cpp │ │ │ │ │ │ ├── normalize_amr_wb.cpp │ │ │ │ │ │ ├── normalize_amr_wb.h │ │ │ │ │ │ ├── oversamp_12k8_to_16k.cpp │ │ │ │ │ │ ├── phase_dispersion.cpp │ │ │ │ │ │ ├── pit_shrp.cpp │ │ │ │ │ │ ├── pred_lt4.cpp │ │ │ │ │ │ ├── preemph_amrwb_dec.cpp │ │ │ │ │ │ ├── pv_amr_wb_type_defs.h │ │ │ │ │ │ ├── pvamrwb_math_op.cpp │ │ │ │ │ │ ├── pvamrwb_math_op.h │ │ │ │ │ │ ├── pvamrwbdecoder.cpp │ │ │ │ │ │ ├── pvamrwbdecoder.h │ │ │ │ │ │ ├── pvamrwbdecoder_acelp.h │ │ │ │ │ │ ├── pvamrwbdecoder_basic_op.h │ │ │ │ │ │ ├── pvamrwbdecoder_basic_op_armv5.h │ │ │ │ │ │ ├── pvamrwbdecoder_basic_op_cequivalent.h │ │ │ │ │ │ ├── pvamrwbdecoder_basic_op_gcc_armv5.h │ │ │ │ │ │ ├── pvamrwbdecoder_cnst.h │ │ │ │ │ │ ├── pvamrwbdecoder_mem_funcs.h │ │ │ │ │ │ ├── q_gain2_tab.cpp │ │ │ │ │ │ ├── q_pulse.h │ │ │ │ │ │ ├── qisf_ns.cpp │ │ │ │ │ │ ├── qisf_ns.h │ │ │ │ │ │ ├── qisf_ns_tab.cpp │ │ │ │ │ │ ├── qpisf_2s.cpp │ │ │ │ │ │ ├── qpisf_2s.h │ │ │ │ │ │ ├── qpisf_2s_tab.cpp │ │ │ │ │ │ ├── scale_signal.cpp │ │ │ │ │ │ ├── synthesis_amr_wb.cpp │ │ │ │ │ │ ├── synthesis_amr_wb.h │ │ │ │ │ │ ├── voice_factor.cpp │ │ │ │ │ │ ├── wb_syn_filt.cpp │ │ │ │ │ │ └── weight_amrwb_lpc.cpp │ │ │ │ ├── amrwbenc │ │ │ │ │ ├── Android.mk │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ ├── NOTICE │ │ │ │ │ ├── SampleCode │ │ │ │ │ │ ├── AMRWB_E_SAMPLE.c │ │ │ │ │ │ ├── Android.mk │ │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ │ └── NOTICE │ │ │ │ │ ├── SoftAMRWBEncoder.cpp │ │ │ │ │ ├── SoftAMRWBEncoder.h │ │ │ │ │ ├── doc │ │ │ │ │ │ └── voAMRWBEncoderSDK.pdf │ │ │ │ │ ├── inc │ │ │ │ │ │ ├── acelp.h │ │ │ │ │ │ ├── basic_op.h │ │ │ │ │ │ ├── bits.h │ │ │ │ │ │ ├── cnst.h │ │ │ │ │ │ ├── cod_main.h │ │ │ │ │ │ ├── dtx.h │ │ │ │ │ │ ├── grid100.tab │ │ │ │ │ │ ├── ham_wind.tab │ │ │ │ │ │ ├── homing.tab │ │ │ │ │ │ ├── isp_isf.tab │ │ │ │ │ │ ├── lag_wind.tab │ │ │ │ │ │ ├── log2.h │ │ │ │ │ │ ├── log2_tab.h │ │ │ │ │ │ ├── main.h │ │ │ │ │ │ ├── math_op.h │ │ │ │ │ │ ├── mem_align.h │ │ │ │ │ │ ├── mime_io.tab │ │ │ │ │ │ ├── oper_32b.h │ │ │ │ │ │ ├── p_med_o.h │ │ │ │ │ │ ├── p_med_ol.tab │ │ │ │ │ │ ├── q_gain2.tab │ │ │ │ │ │ ├── q_pulse.h │ │ │ │ │ │ ├── qisf_ns.tab │ │ │ │ │ │ ├── qpisf_2s.tab │ │ │ │ │ │ ├── stream.h │ │ │ │ │ │ ├── typedef.h │ │ │ │ │ │ ├── typedefs.h │ │ │ │ │ │ ├── wb_vad.h │ │ │ │ │ │ └── wb_vad_c.h │ │ │ │ │ ├── patent_disclaimer.txt │ │ │ │ │ └── src │ │ │ │ │ │ ├── asm │ │ │ │ │ │ ├── ARMV5E │ │ │ │ │ │ │ ├── Deemph_32_opt.s │ │ │ │ │ │ │ ├── Dot_p_opt.s │ │ │ │ │ │ │ ├── Filt_6k_7k_opt.s │ │ │ │ │ │ │ ├── Norm_Corr_opt.s │ │ │ │ │ │ │ ├── Syn_filt_32_opt.s │ │ │ │ │ │ │ ├── convolve_opt.s │ │ │ │ │ │ │ ├── cor_h_vec_opt.s │ │ │ │ │ │ │ ├── pred_lt4_1_opt.s │ │ │ │ │ │ │ ├── residu_asm_opt.s │ │ │ │ │ │ │ ├── scale_sig_opt.s │ │ │ │ │ │ │ └── syn_filt_opt.s │ │ │ │ │ │ └── ARMV7 │ │ │ │ │ │ │ ├── Deemph_32_neon.s │ │ │ │ │ │ │ ├── Dot_p_neon.s │ │ │ │ │ │ │ ├── Filt_6k_7k_neon.s │ │ │ │ │ │ │ ├── Norm_Corr_neon.s │ │ │ │ │ │ │ ├── Syn_filt_32_neon.s │ │ │ │ │ │ │ ├── convolve_neon.s │ │ │ │ │ │ │ ├── cor_h_vec_neon.s │ │ │ │ │ │ │ ├── pred_lt4_1_neon.s │ │ │ │ │ │ │ ├── residu_asm_neon.s │ │ │ │ │ │ │ ├── scale_sig_neon.s │ │ │ │ │ │ │ └── syn_filt_neon.s │ │ │ │ │ │ ├── autocorr.c │ │ │ │ │ │ ├── az_isp.c │ │ │ │ │ │ ├── bits.c │ │ │ │ │ │ ├── c2t64fx.c │ │ │ │ │ │ ├── c4t64fx.c │ │ │ │ │ │ ├── convolve.c │ │ │ │ │ │ ├── cor_h_x.c │ │ │ │ │ │ ├── decim54.c │ │ │ │ │ │ ├── deemph.c │ │ │ │ │ │ ├── dtx.c │ │ │ │ │ │ ├── g_pitch.c │ │ │ │ │ │ ├── gpclip.c │ │ │ │ │ │ ├── homing.c │ │ │ │ │ │ ├── hp400.c │ │ │ │ │ │ ├── hp50.c │ │ │ │ │ │ ├── hp6k.c │ │ │ │ │ │ ├── hp_wsp.c │ │ │ │ │ │ ├── int_lpc.c │ │ │ │ │ │ ├── isp_az.c │ │ │ │ │ │ ├── isp_isf.c │ │ │ │ │ │ ├── lag_wind.c │ │ │ │ │ │ ├── levinson.c │ │ │ │ │ │ ├── log2.c │ │ │ │ │ │ ├── lp_dec2.c │ │ │ │ │ │ ├── math_op.c │ │ │ │ │ │ ├── mem_align.c │ │ │ │ │ │ ├── oper_32b.c │ │ │ │ │ │ ├── p_med_ol.c │ │ │ │ │ │ ├── pit_shrp.c │ │ │ │ │ │ ├── pitch_f4.c │ │ │ │ │ │ ├── pred_lt4.c │ │ │ │ │ │ ├── preemph.c │ │ │ │ │ │ ├── q_gain2.c │ │ │ │ │ │ ├── q_pulse.c │ │ │ │ │ │ ├── qisf_ns.c │ │ │ │ │ │ ├── qpisf_2s.c │ │ │ │ │ │ ├── random.c │ │ │ │ │ │ ├── residu.c │ │ │ │ │ │ ├── scale.c │ │ │ │ │ │ ├── stream.c │ │ │ │ │ │ ├── syn_filt.c │ │ │ │ │ │ ├── updt_tar.c │ │ │ │ │ │ ├── util.c │ │ │ │ │ │ ├── voAMRWBEnc.c │ │ │ │ │ │ ├── voicefac.c │ │ │ │ │ │ ├── wb_vad.c │ │ │ │ │ │ └── weight_a.c │ │ │ │ ├── avc │ │ │ │ │ ├── Android.mk │ │ │ │ │ ├── common │ │ │ │ │ │ ├── Android.mk │ │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ │ ├── NOTICE │ │ │ │ │ │ ├── include │ │ │ │ │ │ │ ├── avc_types.h │ │ │ │ │ │ │ ├── avcapi_common.h │ │ │ │ │ │ │ ├── avcint_common.h │ │ │ │ │ │ │ └── avclib_common.h │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── deblock.cpp │ │ │ │ │ │ │ ├── dpb.cpp │ │ │ │ │ │ │ ├── fmo.cpp │ │ │ │ │ │ │ ├── mb_access.cpp │ │ │ │ │ │ │ └── reflist.cpp │ │ │ │ │ ├── enc │ │ │ │ │ │ ├── Android.mk │ │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ │ ├── NOTICE │ │ │ │ │ │ ├── SoftAVCEncoder.cpp │ │ │ │ │ │ ├── SoftAVCEncoder.h │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── avcenc_api.cpp │ │ │ │ │ │ │ ├── avcenc_api.h │ │ │ │ │ │ │ ├── avcenc_int.h │ │ │ │ │ │ │ ├── avcenc_lib.h │ │ │ │ │ │ │ ├── bitstream_io.cpp │ │ │ │ │ │ │ ├── block.cpp │ │ │ │ │ │ │ ├── findhalfpel.cpp │ │ │ │ │ │ │ ├── header.cpp │ │ │ │ │ │ │ ├── init.cpp │ │ │ │ │ │ │ ├── intra_est.cpp │ │ │ │ │ │ │ ├── motion_comp.cpp │ │ │ │ │ │ │ ├── motion_est.cpp │ │ │ │ │ │ │ ├── rate_control.cpp │ │ │ │ │ │ │ ├── residual.cpp │ │ │ │ │ │ │ ├── sad.cpp │ │ │ │ │ │ │ ├── sad_halfpel.cpp │ │ │ │ │ │ │ ├── sad_halfpel_inline.h │ │ │ │ │ │ │ ├── sad_inline.h │ │ │ │ │ │ │ ├── sad_mb_offset.h │ │ │ │ │ │ │ ├── slice.cpp │ │ │ │ │ │ │ └── vlc_encode.cpp │ │ │ │ │ └── patent_disclaimer.txt │ │ │ │ ├── common │ │ │ │ │ ├── Android.mk │ │ │ │ │ ├── Config.mk │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ ├── NOTICE │ │ │ │ │ ├── cmnMemory.c │ │ │ │ │ └── include │ │ │ │ │ │ ├── cmnMemory.h │ │ │ │ │ │ ├── voAAC.h │ │ │ │ │ │ ├── voAMRWB.h │ │ │ │ │ │ ├── voAudio.h │ │ │ │ │ │ ├── voIndex.h │ │ │ │ │ │ ├── voMem.h │ │ │ │ │ │ └── voType.h │ │ │ │ ├── flac │ │ │ │ │ ├── Android.mk │ │ │ │ │ └── enc │ │ │ │ │ │ ├── Android.mk │ │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ │ ├── NOTICE │ │ │ │ │ │ ├── SoftFlacEncoder.cpp │ │ │ │ │ │ └── SoftFlacEncoder.h │ │ │ │ ├── g711 │ │ │ │ │ ├── Android.mk │ │ │ │ │ └── dec │ │ │ │ │ │ ├── Android.mk │ │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ │ ├── NOTICE │ │ │ │ │ │ ├── SoftG711.cpp │ │ │ │ │ │ └── SoftG711.h │ │ │ │ ├── m4v_h263 │ │ │ │ │ ├── Android.mk │ │ │ │ │ ├── dec │ │ │ │ │ │ ├── Android.mk │ │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ │ ├── NOTICE │ │ │ │ │ │ ├── SoftMPEG4.cpp │ │ │ │ │ │ ├── SoftMPEG4.h │ │ │ │ │ │ ├── include │ │ │ │ │ │ │ ├── m4vh263_decoder_pv_types.h │ │ │ │ │ │ │ ├── mp4dec_api.h │ │ │ │ │ │ │ └── visual_header.h │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── adaptive_smooth_no_mmx.cpp │ │ │ │ │ │ │ ├── bitstream.cpp │ │ │ │ │ │ │ ├── bitstream.h │ │ │ │ │ │ │ ├── block_idct.cpp │ │ │ │ │ │ │ ├── cal_dc_scaler.cpp │ │ │ │ │ │ │ ├── chv_filter.cpp │ │ │ │ │ │ │ ├── chvr_filter.cpp │ │ │ │ │ │ │ ├── combined_decode.cpp │ │ │ │ │ │ │ ├── conceal.cpp │ │ │ │ │ │ │ ├── datapart_decode.cpp │ │ │ │ │ │ │ ├── dcac_prediction.cpp │ │ │ │ │ │ │ ├── dec_pred_intra_dc.cpp │ │ │ │ │ │ │ ├── deringing_chroma.cpp │ │ │ │ │ │ │ ├── deringing_luma.cpp │ │ │ │ │ │ │ ├── find_min_max.cpp │ │ │ │ │ │ │ ├── get_pred_adv_b_add.cpp │ │ │ │ │ │ │ ├── get_pred_outside.cpp │ │ │ │ │ │ │ ├── idct.cpp │ │ │ │ │ │ │ ├── idct.h │ │ │ │ │ │ │ ├── idct_vca.cpp │ │ │ │ │ │ │ ├── max_level.h │ │ │ │ │ │ │ ├── mb_motion_comp.cpp │ │ │ │ │ │ │ ├── mb_utils.cpp │ │ │ │ │ │ │ ├── mbtype_mode.h │ │ │ │ │ │ │ ├── motion_comp.h │ │ │ │ │ │ │ ├── mp4dec_lib.h │ │ │ │ │ │ │ ├── mp4def.h │ │ │ │ │ │ │ ├── mp4lib_int.h │ │ │ │ │ │ │ ├── packet_util.cpp │ │ │ │ │ │ │ ├── post_filter.cpp │ │ │ │ │ │ │ ├── post_proc.h │ │ │ │ │ │ │ ├── post_proc_semaphore.cpp │ │ │ │ │ │ │ ├── pp_semaphore_chroma_inter.cpp │ │ │ │ │ │ │ ├── pp_semaphore_luma.cpp │ │ │ │ │ │ │ ├── pvdec_api.cpp │ │ │ │ │ │ │ ├── scaling.h │ │ │ │ │ │ │ ├── scaling_tab.cpp │ │ │ │ │ │ │ ├── vlc_dec_tab.h │ │ │ │ │ │ │ ├── vlc_decode.cpp │ │ │ │ │ │ │ ├── vlc_decode.h │ │ │ │ │ │ │ ├── vlc_dequant.cpp │ │ │ │ │ │ │ ├── vlc_tab.cpp │ │ │ │ │ │ │ ├── vop.cpp │ │ │ │ │ │ │ ├── zigzag.h │ │ │ │ │ │ │ └── zigzag_tab.cpp │ │ │ │ │ ├── enc │ │ │ │ │ │ ├── Android.mk │ │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ │ ├── NOTICE │ │ │ │ │ │ ├── SoftMPEG4Encoder.cpp │ │ │ │ │ │ ├── SoftMPEG4Encoder.h │ │ │ │ │ │ ├── include │ │ │ │ │ │ │ ├── cvei.h │ │ │ │ │ │ │ └── mp4enc_api.h │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── bitstream_io.cpp │ │ │ │ │ │ │ ├── bitstream_io.h │ │ │ │ │ │ │ ├── combined_encode.cpp │ │ │ │ │ │ │ ├── datapart_encode.cpp │ │ │ │ │ │ │ ├── dct.cpp │ │ │ │ │ │ │ ├── dct.h │ │ │ │ │ │ │ ├── dct_inline.h │ │ │ │ │ │ │ ├── fastcodemb.cpp │ │ │ │ │ │ │ ├── fastcodemb.h │ │ │ │ │ │ │ ├── fastidct.cpp │ │ │ │ │ │ │ ├── fastquant.cpp │ │ │ │ │ │ │ ├── fastquant_inline.h │ │ │ │ │ │ │ ├── findhalfpel.cpp │ │ │ │ │ │ │ ├── m4venc_oscl.h │ │ │ │ │ │ │ ├── me_utils.cpp │ │ │ │ │ │ │ ├── motion_comp.cpp │ │ │ │ │ │ │ ├── motion_est.cpp │ │ │ │ │ │ │ ├── mp4def.h │ │ │ │ │ │ │ ├── mp4enc_api.cpp │ │ │ │ │ │ │ ├── mp4enc_lib.h │ │ │ │ │ │ │ ├── mp4lib_int.h │ │ │ │ │ │ │ ├── rate_control.cpp │ │ │ │ │ │ │ ├── rate_control.h │ │ │ │ │ │ │ ├── sad.cpp │ │ │ │ │ │ │ ├── sad_halfpel.cpp │ │ │ │ │ │ │ ├── sad_halfpel_inline.h │ │ │ │ │ │ │ ├── sad_inline.h │ │ │ │ │ │ │ ├── sad_mb_offset.h │ │ │ │ │ │ │ ├── vlc_enc_tab.h │ │ │ │ │ │ │ ├── vlc_encode.cpp │ │ │ │ │ │ │ ├── vlc_encode.h │ │ │ │ │ │ │ ├── vlc_encode_inline.h │ │ │ │ │ │ │ └── vop.cpp │ │ │ │ │ └── patent_disclaimer.txt │ │ │ │ ├── mp3dec │ │ │ │ │ ├── Android.mk │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ ├── NOTICE │ │ │ │ │ ├── SoftMP3.cpp │ │ │ │ │ ├── SoftMP3.h │ │ │ │ │ ├── include │ │ │ │ │ │ ├── mp3_decoder_selection.h │ │ │ │ │ │ ├── pvmp3_audio_type_defs.h │ │ │ │ │ │ └── pvmp3decoder_api.h │ │ │ │ │ ├── patent_disclaimer.txt │ │ │ │ │ └── src │ │ │ │ │ │ ├── asm │ │ │ │ │ │ ├── pvmp3_dct_16_gcc.s │ │ │ │ │ │ ├── pvmp3_dct_9_arm.s │ │ │ │ │ │ ├── pvmp3_dct_9_gcc.s │ │ │ │ │ │ ├── pvmp3_mdct_18_arm.s │ │ │ │ │ │ ├── pvmp3_mdct_18_gcc.s │ │ │ │ │ │ ├── pvmp3_mdct_18_wm.asm │ │ │ │ │ │ ├── pvmp3_polyphase_filter_window_arm.s │ │ │ │ │ │ ├── pvmp3_polyphase_filter_window_gcc.s │ │ │ │ │ │ └── pvmp3_polyphase_filter_window_wm.asm │ │ │ │ │ │ ├── mp3_mem_funcs.h │ │ │ │ │ │ ├── pv_mp3_huffman.h │ │ │ │ │ │ ├── pv_mp3dec_fxd_op.h │ │ │ │ │ │ ├── pv_mp3dec_fxd_op_arm.h │ │ │ │ │ │ ├── pv_mp3dec_fxd_op_arm_gcc.h │ │ │ │ │ │ ├── pv_mp3dec_fxd_op_c_equivalent.h │ │ │ │ │ │ ├── pv_mp3dec_fxd_op_msc_evc.h │ │ │ │ │ │ ├── pvmp3_alias_reduction.cpp │ │ │ │ │ │ ├── pvmp3_alias_reduction.h │ │ │ │ │ │ ├── pvmp3_crc.cpp │ │ │ │ │ │ ├── pvmp3_crc.h │ │ │ │ │ │ ├── pvmp3_dct_16.cpp │ │ │ │ │ │ ├── pvmp3_dct_16.h │ │ │ │ │ │ ├── pvmp3_dct_6.cpp │ │ │ │ │ │ ├── pvmp3_dct_9.cpp │ │ │ │ │ │ ├── pvmp3_dec_defs.h │ │ │ │ │ │ ├── pvmp3_decode_header.cpp │ │ │ │ │ │ ├── pvmp3_decode_header.h │ │ │ │ │ │ ├── pvmp3_decode_huff_cw.cpp │ │ │ │ │ │ ├── pvmp3_decode_huff_cw.h │ │ │ │ │ │ ├── pvmp3_dequantize_sample.cpp │ │ │ │ │ │ ├── pvmp3_dequantize_sample.h │ │ │ │ │ │ ├── pvmp3_equalizer.cpp │ │ │ │ │ │ ├── pvmp3_equalizer.h │ │ │ │ │ │ ├── pvmp3_framedecoder.cpp │ │ │ │ │ │ ├── pvmp3_framedecoder.h │ │ │ │ │ │ ├── pvmp3_get_main_data_size.cpp │ │ │ │ │ │ ├── pvmp3_get_main_data_size.h │ │ │ │ │ │ ├── pvmp3_get_scale_factors.cpp │ │ │ │ │ │ ├── pvmp3_get_scale_factors.h │ │ │ │ │ │ ├── pvmp3_get_side_info.cpp │ │ │ │ │ │ ├── pvmp3_get_side_info.h │ │ │ │ │ │ ├── pvmp3_getbits.cpp │ │ │ │ │ │ ├── pvmp3_getbits.h │ │ │ │ │ │ ├── pvmp3_huffman_decoding.cpp │ │ │ │ │ │ ├── pvmp3_huffman_parsing.cpp │ │ │ │ │ │ ├── pvmp3_imdct_synth.cpp │ │ │ │ │ │ ├── pvmp3_imdct_synth.h │ │ │ │ │ │ ├── pvmp3_mdct_18.cpp │ │ │ │ │ │ ├── pvmp3_mdct_18.h │ │ │ │ │ │ ├── pvmp3_mdct_6.cpp │ │ │ │ │ │ ├── pvmp3_mdct_6.h │ │ │ │ │ │ ├── pvmp3_mpeg2_get_scale_data.cpp │ │ │ │ │ │ ├── pvmp3_mpeg2_get_scale_data.h │ │ │ │ │ │ ├── pvmp3_mpeg2_get_scale_factors.cpp │ │ │ │ │ │ ├── pvmp3_mpeg2_get_scale_factors.h │ │ │ │ │ │ ├── pvmp3_mpeg2_stereo_proc.cpp │ │ │ │ │ │ ├── pvmp3_mpeg2_stereo_proc.h │ │ │ │ │ │ ├── pvmp3_normalize.cpp │ │ │ │ │ │ ├── pvmp3_normalize.h │ │ │ │ │ │ ├── pvmp3_poly_phase_synthesis.cpp │ │ │ │ │ │ ├── pvmp3_poly_phase_synthesis.h │ │ │ │ │ │ ├── pvmp3_polyphase_filter_window.cpp │ │ │ │ │ │ ├── pvmp3_polyphase_filter_window.h │ │ │ │ │ │ ├── pvmp3_reorder.cpp │ │ │ │ │ │ ├── pvmp3_reorder.h │ │ │ │ │ │ ├── pvmp3_seek_synch.cpp │ │ │ │ │ │ ├── pvmp3_seek_synch.h │ │ │ │ │ │ ├── pvmp3_stereo_proc.cpp │ │ │ │ │ │ ├── pvmp3_stereo_proc.h │ │ │ │ │ │ ├── pvmp3_tables.cpp │ │ │ │ │ │ ├── pvmp3_tables.h │ │ │ │ │ │ ├── s_huffcodetab.h │ │ │ │ │ │ ├── s_mp3bits.h │ │ │ │ │ │ ├── s_tmp3dec_chan.h │ │ │ │ │ │ └── s_tmp3dec_file.h │ │ │ │ ├── on2 │ │ │ │ │ ├── Android.mk │ │ │ │ │ ├── dec │ │ │ │ │ │ ├── Android.mk │ │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ │ ├── NOTICE │ │ │ │ │ │ ├── SoftVPX.cpp │ │ │ │ │ │ └── SoftVPX.h │ │ │ │ │ └── h264dec │ │ │ │ │ │ ├── Android.mk │ │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ │ ├── NOTICE │ │ │ │ │ │ ├── SoftAVC.cpp │ │ │ │ │ │ ├── SoftAVC.h │ │ │ │ │ │ ├── inc │ │ │ │ │ │ ├── H264SwDecApi.h │ │ │ │ │ │ └── basetype.h │ │ │ │ │ │ ├── omxdl │ │ │ │ │ │ ├── arm11 │ │ │ │ │ │ │ ├── ARM_DELIVERY.TXT │ │ │ │ │ │ │ ├── ARM_MANIFEST.TXT │ │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ ├── armCOMM.h │ │ │ │ │ │ │ │ ├── armCOMM_BitDec_s.h │ │ │ │ │ │ │ │ ├── armCOMM_Bitstream.h │ │ │ │ │ │ │ │ ├── armCOMM_IDCTTable.h │ │ │ │ │ │ │ │ ├── armCOMM_IDCT_s.h │ │ │ │ │ │ │ │ ├── armCOMM_MaskTable.h │ │ │ │ │ │ │ │ ├── armCOMM_Version.h │ │ │ │ │ │ │ │ ├── armCOMM_s.h │ │ │ │ │ │ │ │ ├── armOMX.h │ │ │ │ │ │ │ │ ├── omxtypes.h │ │ │ │ │ │ │ │ └── omxtypes_s.h │ │ │ │ │ │ │ ├── build_vc.pl │ │ │ │ │ │ │ ├── filelist_vc.txt │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ │ ├── armCOMM.c │ │ │ │ │ │ │ │ ├── armCOMM_Bitstream.c │ │ │ │ │ │ │ │ ├── armCOMM_IDCTTable.c │ │ │ │ │ │ │ │ └── armCOMM_MaskTable.c │ │ │ │ │ │ │ └── vc │ │ │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ ├── armVC.h │ │ │ │ │ │ │ │ ├── armVCCOMM_s.h │ │ │ │ │ │ │ │ ├── omxVC.h │ │ │ │ │ │ │ │ └── omxVC_s.h │ │ │ │ │ │ │ │ ├── comm │ │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ │ │ ├── omxVCCOMM_Copy16x16_s.s │ │ │ │ │ │ │ │ │ ├── omxVCCOMM_Copy8x8_s.s │ │ │ │ │ │ │ │ │ └── omxVCCOMM_ExpandFrame_I_s.s │ │ │ │ │ │ │ │ ├── m4p10 │ │ │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ │ └── armVCM4P10_CAVLCTables.h │ │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ │ │ ├── armVCM4P10_Average_4x_Align_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_CAVLCTables.c │ │ │ │ │ │ │ │ │ ├── armVCM4P10_DeblockingChroma_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_DeblockingLuma_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_DecodeCoeffsToPair_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_DequantTables_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_Align_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_Copy_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_DiagCopy_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_Interpolate_Chroma_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_QuantTables_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_TransformResidual4x4_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_UnpackBlock4x4_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_DeblockChroma_I.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_DeblockLuma_I.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_DecodeChromaDcCoeffsToPairCAVLC.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_DecodeCoeffsToPairCAVLC.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_DequantTransformResidualFromPairAndAdd_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingChroma_HorEdge_I_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingChroma_VerEdge_I_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingLuma_HorEdge_I_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingLuma_VerEdge_I_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_InterpolateChroma.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_InterpolateLuma_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_PredictIntraChroma_8x8_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_PredictIntra_16x16_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_PredictIntra_4x4_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_TransformDequantChromaDCFromPair_s.s │ │ │ │ │ │ │ │ │ └── omxVCM4P10_TransformDequantLumaDCFromPair_s.s │ │ │ │ │ │ │ │ ├── m4p2 │ │ │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ │ ├── armVCM4P2_Huff_Tables_VLC.h │ │ │ │ │ │ │ │ │ └── armVCM4P2_ZigZag_Tables.h │ │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ │ │ ├── armVCM4P2_Clip8_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P2_DecodeVLCZigzag_AC_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P2_Huff_Tables_VLC.c │ │ │ │ │ │ │ │ │ ├── armVCM4P2_Lookup_Tables.c │ │ │ │ │ │ │ │ │ ├── armVCM4P2_SetPredDir_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P2_Zigzag_Tables.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeBlockCoef_Inter.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeBlockCoef_Intra.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodePadMV_PVOP_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeVLCZigzag_Inter_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeVLCZigzag_IntraACVLC_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeVLCZigzag_IntraDCVLC_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_FindMVpred_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_IDCT8x8blk_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_MCReconBlock_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_PredictReconCoefIntra_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_QuantInvInter_I_s.s │ │ │ │ │ │ │ │ │ └── omxVCM4P2_QuantInvIntra_I_s.s │ │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ │ └── armVC_Version.c │ │ │ │ │ │ ├── arm_neon │ │ │ │ │ │ │ ├── ARM_DELIVERY.TXT │ │ │ │ │ │ │ ├── ARM_MANIFEST.TXT │ │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ ├── armCOMM.h │ │ │ │ │ │ │ │ ├── armCOMM_BitDec_s.h │ │ │ │ │ │ │ │ ├── armCOMM_Bitstream.h │ │ │ │ │ │ │ │ ├── armCOMM_IDCTTable.h │ │ │ │ │ │ │ │ ├── armCOMM_IDCT_s.h │ │ │ │ │ │ │ │ ├── armCOMM_MaskTable.h │ │ │ │ │ │ │ │ ├── armCOMM_Version.h │ │ │ │ │ │ │ │ ├── armCOMM_s.h │ │ │ │ │ │ │ │ ├── armOMX.h │ │ │ │ │ │ │ │ ├── omxtypes.h │ │ │ │ │ │ │ │ └── omxtypes_s.h │ │ │ │ │ │ │ ├── build_vc.pl │ │ │ │ │ │ │ ├── filelist_vc.txt │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ │ ├── armCOMM.c │ │ │ │ │ │ │ │ ├── armCOMM_Bitstream.c │ │ │ │ │ │ │ │ ├── armCOMM_IDCTTable.c │ │ │ │ │ │ │ │ └── armCOMM_MaskTable.c │ │ │ │ │ │ │ └── vc │ │ │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ ├── armVC.h │ │ │ │ │ │ │ │ ├── armVCCOMM_s.h │ │ │ │ │ │ │ │ ├── omxVC.h │ │ │ │ │ │ │ │ └── omxVC_s.h │ │ │ │ │ │ │ │ ├── comm │ │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ │ │ ├── omxVCCOMM_Copy16x16_s.s │ │ │ │ │ │ │ │ │ ├── omxVCCOMM_Copy8x8_s.s │ │ │ │ │ │ │ │ │ └── omxVCCOMM_ExpandFrame_I_s.s │ │ │ │ │ │ │ │ ├── m4p10 │ │ │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ │ └── armVCM4P10_CAVLCTables.h │ │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ │ │ ├── armVCM4P10_Average_4x_Align_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_CAVLCTables.c │ │ │ │ │ │ │ │ │ ├── armVCM4P10_DeblockingChroma_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_DeblockingLuma_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_DecodeCoeffsToPair_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_DequantTables_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_Align_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_Copy_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_DiagCopy_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_Interpolate_Chroma_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_QuantTables_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_TransformResidual4x4_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P10_UnpackBlock4x4_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_DeblockChroma_I.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_DeblockLuma_I.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_DecodeChromaDcCoeffsToPairCAVLC.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_DecodeCoeffsToPairCAVLC.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_DequantTransformResidualFromPairAndAdd_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingChroma_HorEdge_I_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingChroma_VerEdge_I_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingLuma_HorEdge_I_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingLuma_VerEdge_I_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_InterpolateChroma.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_InterpolateLuma_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_PredictIntraChroma_8x8_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_PredictIntra_16x16_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_PredictIntra_4x4_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_TransformDequantChromaDCFromPair_s.s │ │ │ │ │ │ │ │ │ └── omxVCM4P10_TransformDequantLumaDCFromPair_s.s │ │ │ │ │ │ │ │ └── src_gcc │ │ │ │ │ │ │ │ │ ├── armVCM4P10_Average_4x_Align_unsafe_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_DeblockingChroma_unsafe_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_DeblockingLuma_unsafe_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_DecodeCoeffsToPair_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_DequantTables_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_Align_unsafe_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_Copy_unsafe_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_DiagCopy_unsafe_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_Interpolate_Chroma_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_QuantTables_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_TransformResidual4x4_s.S │ │ │ │ │ │ │ │ │ ├── armVCM4P10_UnpackBlock4x4_s.S │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_DeblockLuma_I.S │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_DequantTransformResidualFromPairAndAdd_s.S │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingChroma_HorEdge_I_s.S │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingChroma_VerEdge_I_s.S │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingLuma_HorEdge_I_s.S │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingLuma_VerEdge_I_s.S │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_InterpolateLuma_s.S │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_PredictIntraChroma_8x8_s.S │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_PredictIntra_16x16_s.S │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_PredictIntra_4x4_s.S │ │ │ │ │ │ │ │ │ ├── omxVCM4P10_TransformDequantChromaDCFromPair_s.S │ │ │ │ │ │ │ │ │ └── omxVCM4P10_TransformDequantLumaDCFromPair_s.S │ │ │ │ │ │ │ │ ├── m4p2 │ │ │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ │ ├── armVCM4P2_Huff_Tables_VLC.h │ │ │ │ │ │ │ │ │ └── armVCM4P2_ZigZag_Tables.h │ │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ │ │ ├── armVCM4P2_Clip8_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P2_DecodeVLCZigzag_AC_unsafe_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P2_Huff_Tables_VLC.c │ │ │ │ │ │ │ │ │ ├── armVCM4P2_Lookup_Tables.c │ │ │ │ │ │ │ │ │ ├── armVCM4P2_SetPredDir_s.s │ │ │ │ │ │ │ │ │ ├── armVCM4P2_Zigzag_Tables.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeBlockCoef_Inter.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeBlockCoef_Intra.c │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodePadMV_PVOP_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeVLCZigzag_Inter_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeVLCZigzag_IntraACVLC_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeVLCZigzag_IntraDCVLC_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_FindMVpred_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_IDCT8x8blk_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_MCReconBlock_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_PredictReconCoefIntra_s.s │ │ │ │ │ │ │ │ │ ├── omxVCM4P2_QuantInvInter_I_s.s │ │ │ │ │ │ │ │ │ └── omxVCM4P2_QuantInvIntra_I_s.s │ │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ │ └── armVC_Version.c │ │ │ │ │ │ └── reference │ │ │ │ │ │ │ ├── ARM_DELIVERY.TXT │ │ │ │ │ │ │ ├── ARM_MANIFEST.TXT │ │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ ├── armCOMM.h │ │ │ │ │ │ │ ├── armCOMM_Bitstream.h │ │ │ │ │ │ │ ├── armCOMM_Version.h │ │ │ │ │ │ │ ├── armOMX.h │ │ │ │ │ │ │ └── omxtypes.h │ │ │ │ │ │ │ ├── build_vc.pl │ │ │ │ │ │ │ ├── filelist_vc.txt │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── armCOMM.c │ │ │ │ │ │ │ └── armCOMM_Bitstream.c │ │ │ │ │ │ │ └── vc │ │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ ├── armVC.h │ │ │ │ │ │ │ └── omxVC.h │ │ │ │ │ │ │ ├── comm │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ │ ├── armVCCOMM_Average.c │ │ │ │ │ │ │ │ ├── armVCCOMM_SAD.c │ │ │ │ │ │ │ │ ├── omxVCCOMM_Average_16x.c │ │ │ │ │ │ │ │ ├── omxVCCOMM_Average_8x.c │ │ │ │ │ │ │ │ ├── omxVCCOMM_ComputeTextureErrorBlock.c │ │ │ │ │ │ │ │ ├── omxVCCOMM_ComputeTextureErrorBlock_SAD.c │ │ │ │ │ │ │ │ ├── omxVCCOMM_Copy16x16.c │ │ │ │ │ │ │ │ ├── omxVCCOMM_Copy8x8.c │ │ │ │ │ │ │ │ ├── omxVCCOMM_ExpandFrame_I.c │ │ │ │ │ │ │ │ ├── omxVCCOMM_LimitMVToRect.c │ │ │ │ │ │ │ │ ├── omxVCCOMM_SAD_16x.c │ │ │ │ │ │ │ │ └── omxVCCOMM_SAD_8x.c │ │ │ │ │ │ │ ├── m4p10 │ │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ └── armVCM4P10_CAVLCTables.h │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ │ ├── armVCM4P10_CAVLCTables.c │ │ │ │ │ │ │ │ ├── armVCM4P10_CompareMotionCostToMV.c │ │ │ │ │ │ │ │ ├── armVCM4P10_DeBlockPixel.c │ │ │ │ │ │ │ │ ├── armVCM4P10_DecodeCoeffsToPair.c │ │ │ │ │ │ │ │ ├── armVCM4P10_DequantTables.c │ │ │ │ │ │ │ │ ├── armVCM4P10_FwdTransformResidual4x4.c │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateHalfDiag_Luma.c │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateHalfHor_Luma.c │ │ │ │ │ │ │ │ ├── armVCM4P10_InterpolateHalfVer_Luma.c │ │ │ │ │ │ │ │ ├── armVCM4P10_Interpolate_Chroma.c │ │ │ │ │ │ │ │ ├── armVCM4P10_Interpolate_Luma.c │ │ │ │ │ │ │ │ ├── armVCM4P10_PredictIntraDC4x4.c │ │ │ │ │ │ │ │ ├── armVCM4P10_QuantTables.c │ │ │ │ │ │ │ │ ├── armVCM4P10_SADQuar.c │ │ │ │ │ │ │ │ ├── armVCM4P10_TransformResidual4x4.c │ │ │ │ │ │ │ │ ├── armVCM4P10_UnpackBlock2x2.c │ │ │ │ │ │ │ │ ├── armVCM4P10_UnpackBlock4x4.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_Average_4x.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_BlockMatch_Half.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_BlockMatch_Integer.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_BlockMatch_Quarter.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_DeblockChroma_I.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_DeblockLuma_I.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_DecodeChromaDcCoeffsToPairCAVLC.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_DecodeCoeffsToPairCAVLC.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_DequantTransformResidualFromPairAndAdd.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingChroma_HorEdge_I.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingChroma_VerEdge_I.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingLuma_HorEdge_I.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_FilterDeblockingLuma_VerEdge_I.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_GetVLCInfo.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_InterpolateChroma.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_InterpolateHalfHor_Luma.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_InterpolateHalfVer_Luma.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_InterpolateLuma.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_InvTransformDequant_ChromaDC.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_InvTransformDequant_LumaDC.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_InvTransformResidualAndAdd.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_MEGetBufSize.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_MEInit.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_MotionEstimationMB.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_PredictIntraChroma_8x8.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_PredictIntra_16x16.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_PredictIntra_4x4.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_SADQuar_16x.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_SADQuar_4x.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_SADQuar_8x.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_SAD_4x.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_SATD_4x4.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_SubAndTransformQDQResidual.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_TransformDequantChromaDCFromPair.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_TransformDequantLumaDCFromPair.c │ │ │ │ │ │ │ │ ├── omxVCM4P10_TransformQuant_ChromaDC.c │ │ │ │ │ │ │ │ └── omxVCM4P10_TransformQuant_LumaDC.c │ │ │ │ │ │ │ ├── m4p2 │ │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ ├── armVCM4P2_DCT_Table.h │ │ │ │ │ │ │ │ ├── armVCM4P2_Huff_Tables_VLC.h │ │ │ │ │ │ │ │ └── armVCM4P2_ZigZag_Tables.h │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ │ ├── armVCM4P2_ACDCPredict.c │ │ │ │ │ │ │ │ ├── armVCM4P2_BlockMatch_Half.c │ │ │ │ │ │ │ │ ├── armVCM4P2_BlockMatch_Integer.c │ │ │ │ │ │ │ │ ├── armVCM4P2_CheckVLCEscapeMode.c │ │ │ │ │ │ │ │ ├── armVCM4P2_CompareMV.c │ │ │ │ │ │ │ │ ├── armVCM4P2_DCT_Table.c │ │ │ │ │ │ │ │ ├── armVCM4P2_DecodeVLCZigzag_intra.c │ │ │ │ │ │ │ │ ├── armVCM4P2_EncodeVLCZigzag_intra.c │ │ │ │ │ │ │ │ ├── armVCM4P2_FillVLCBuffer.c │ │ │ │ │ │ │ │ ├── armVCM4P2_FillVLDBuffer.c │ │ │ │ │ │ │ │ ├── armVCM4P2_GetVLCBits.c │ │ │ │ │ │ │ │ ├── armVCM4P2_Huff_Tables_VLC.c │ │ │ │ │ │ │ │ ├── armVCM4P2_PutVLCBits.c │ │ │ │ │ │ │ │ ├── armVCM4P2_SetPredDir.c │ │ │ │ │ │ │ │ ├── armVCM4P2_Zigzag_Tables.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_BlockMatch_Half_16x16.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_BlockMatch_Half_8x8.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_BlockMatch_Integer_16x16.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_BlockMatch_Integer_8x8.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_DCT8x8blk.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeBlockCoef_Inter.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeBlockCoef_Intra.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodePadMV_PVOP.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeVLCZigzag_Inter.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeVLCZigzag_IntraACVLC.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_DecodeVLCZigzag_IntraDCVLC.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_EncodeMV.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_EncodeVLCZigzag_Inter.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_EncodeVLCZigzag_IntraACVLC.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_EncodeVLCZigzag_IntraDCVLC.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_FindMVpred.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_IDCT8x8blk.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_MCReconBlock.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_MEGetBufSize.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_MEInit.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_MotionEstimationMB.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_PredictReconCoefIntra.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_QuantInter_I.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_QuantIntra_I.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_QuantInvInter_I.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_QuantInvIntra_I.c │ │ │ │ │ │ │ │ ├── omxVCM4P2_TransRecBlockCoef_inter.c │ │ │ │ │ │ │ │ └── omxVCM4P2_TransRecBlockCoef_intra.c │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ └── armVC_Version.c │ │ │ │ │ │ └── source │ │ │ │ │ │ ├── DecTestBench.c │ │ │ │ │ │ ├── EvaluationTestBench.c │ │ │ │ │ │ ├── H264SwDecApi.c │ │ │ │ │ │ ├── TestBenchMultipleInstance.c │ │ │ │ │ │ ├── arm11_asm │ │ │ │ │ │ ├── h264bsd_interpolate_chroma_hor.s │ │ │ │ │ │ ├── h264bsd_interpolate_chroma_hor_ver.s │ │ │ │ │ │ ├── h264bsd_interpolate_chroma_ver.s │ │ │ │ │ │ ├── h264bsd_interpolate_hor_half.s │ │ │ │ │ │ ├── h264bsd_interpolate_hor_quarter.s │ │ │ │ │ │ ├── h264bsd_interpolate_hor_ver_quarter.s │ │ │ │ │ │ ├── h264bsd_interpolate_mid_hor.s │ │ │ │ │ │ ├── h264bsd_interpolate_ver_half.s │ │ │ │ │ │ ├── h264bsd_interpolate_ver_quarter.s │ │ │ │ │ │ └── win_asm.bat │ │ │ │ │ │ ├── arm_neon_asm │ │ │ │ │ │ ├── h264bsdClearMbLayer.s │ │ │ │ │ │ ├── h264bsdCountLeadingZeros.s │ │ │ │ │ │ ├── h264bsdFillRow7.s │ │ │ │ │ │ ├── h264bsdFlushBits.s │ │ │ │ │ │ └── h264bsdWriteMacroblock.s │ │ │ │ │ │ ├── arm_neon_asm_gcc │ │ │ │ │ │ ├── asm_common.S │ │ │ │ │ │ ├── h264bsdClearMbLayer.S │ │ │ │ │ │ ├── h264bsdCountLeadingZeros.S │ │ │ │ │ │ ├── h264bsdFillRow7.S │ │ │ │ │ │ ├── h264bsdFlushBits.S │ │ │ │ │ │ └── h264bsdWriteMacroblock.S │ │ │ │ │ │ ├── h264bsd_byte_stream.c │ │ │ │ │ │ ├── h264bsd_byte_stream.h │ │ │ │ │ │ ├── h264bsd_cavlc.c │ │ │ │ │ │ ├── h264bsd_cavlc.h │ │ │ │ │ │ ├── h264bsd_cfg.h │ │ │ │ │ │ ├── h264bsd_conceal.c │ │ │ │ │ │ ├── h264bsd_conceal.h │ │ │ │ │ │ ├── h264bsd_container.h │ │ │ │ │ │ ├── h264bsd_deblocking.c │ │ │ │ │ │ ├── h264bsd_deblocking.h │ │ │ │ │ │ ├── h264bsd_decoder.c │ │ │ │ │ │ ├── h264bsd_decoder.h │ │ │ │ │ │ ├── h264bsd_dpb.c │ │ │ │ │ │ ├── h264bsd_dpb.h │ │ │ │ │ │ ├── h264bsd_image.c │ │ │ │ │ │ ├── h264bsd_image.h │ │ │ │ │ │ ├── h264bsd_inter_prediction.c │ │ │ │ │ │ ├── h264bsd_inter_prediction.h │ │ │ │ │ │ ├── h264bsd_intra_prediction.c │ │ │ │ │ │ ├── h264bsd_intra_prediction.h │ │ │ │ │ │ ├── h264bsd_macroblock_layer.c │ │ │ │ │ │ ├── h264bsd_macroblock_layer.h │ │ │ │ │ │ ├── h264bsd_nal_unit.c │ │ │ │ │ │ ├── h264bsd_nal_unit.h │ │ │ │ │ │ ├── h264bsd_neighbour.c │ │ │ │ │ │ ├── h264bsd_neighbour.h │ │ │ │ │ │ ├── h264bsd_pic_order_cnt.c │ │ │ │ │ │ ├── h264bsd_pic_order_cnt.h │ │ │ │ │ │ ├── h264bsd_pic_param_set.c │ │ │ │ │ │ ├── h264bsd_pic_param_set.h │ │ │ │ │ │ ├── h264bsd_reconstruct.c │ │ │ │ │ │ ├── h264bsd_reconstruct.h │ │ │ │ │ │ ├── h264bsd_sei.c │ │ │ │ │ │ ├── h264bsd_sei.h │ │ │ │ │ │ ├── h264bsd_seq_param_set.c │ │ │ │ │ │ ├── h264bsd_seq_param_set.h │ │ │ │ │ │ ├── h264bsd_slice_data.c │ │ │ │ │ │ ├── h264bsd_slice_data.h │ │ │ │ │ │ ├── h264bsd_slice_group_map.c │ │ │ │ │ │ ├── h264bsd_slice_group_map.h │ │ │ │ │ │ ├── h264bsd_slice_header.c │ │ │ │ │ │ ├── h264bsd_slice_header.h │ │ │ │ │ │ ├── h264bsd_storage.c │ │ │ │ │ │ ├── h264bsd_storage.h │ │ │ │ │ │ ├── h264bsd_stream.c │ │ │ │ │ │ ├── h264bsd_stream.h │ │ │ │ │ │ ├── h264bsd_transform.c │ │ │ │ │ │ ├── h264bsd_transform.h │ │ │ │ │ │ ├── h264bsd_util.c │ │ │ │ │ │ ├── h264bsd_util.h │ │ │ │ │ │ ├── h264bsd_vlc.c │ │ │ │ │ │ ├── h264bsd_vlc.h │ │ │ │ │ │ ├── h264bsd_vui.c │ │ │ │ │ │ └── h264bsd_vui.h │ │ │ │ ├── raw │ │ │ │ │ ├── Android.mk │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ ├── NOTICE │ │ │ │ │ ├── SoftRaw.cpp │ │ │ │ │ └── SoftRaw.h │ │ │ │ └── vorbis │ │ │ │ │ ├── Android.mk │ │ │ │ │ └── dec │ │ │ │ │ ├── Android.mk │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ ├── NOTICE │ │ │ │ │ ├── SoftVorbis.cpp │ │ │ │ │ └── SoftVorbis.h │ │ │ ├── colorconversion │ │ │ │ ├── Android.mk │ │ │ │ ├── ColorConverter.cpp │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ ├── NOTICE │ │ │ │ └── SoftwareRenderer.cpp │ │ │ ├── foundation │ │ │ │ ├── AAtomizer.cpp │ │ │ │ ├── ABitReader.cpp │ │ │ │ ├── ABuffer.cpp │ │ │ │ ├── AHandler.cpp │ │ │ │ ├── AHierarchicalStateMachine.cpp │ │ │ │ ├── ALooper.cpp │ │ │ │ ├── ALooperRoster.cpp │ │ │ │ ├── AMessage.cpp │ │ │ │ ├── AString.cpp │ │ │ │ ├── Android.mk │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ ├── NOTICE │ │ │ │ ├── base64.cpp │ │ │ │ └── hexdump.cpp │ │ │ ├── httplive │ │ │ │ ├── Android.mk │ │ │ │ ├── LiveDataSource.cpp │ │ │ │ ├── LiveDataSource.h │ │ │ │ ├── LiveSession.cpp │ │ │ │ ├── M3UParser.cpp │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ └── NOTICE │ │ │ ├── id3 │ │ │ │ ├── Android.mk │ │ │ │ ├── ID3.cpp │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ ├── NOTICE │ │ │ │ └── testid3.cpp │ │ │ ├── include │ │ │ │ ├── AACEncoder.h │ │ │ │ ├── AACExtractor.h │ │ │ │ ├── AMRExtractor.h │ │ │ │ ├── AVIExtractor.h │ │ │ │ ├── AwesomePlayer.h │ │ │ │ ├── ChromiumHTTPDataSource.h │ │ │ │ ├── DRMExtractor.h │ │ │ │ ├── DataUriSource.h │ │ │ │ ├── ESDS.h │ │ │ │ ├── FLACExtractor.h │ │ │ │ ├── FragmentedMP4Extractor.h │ │ │ │ ├── FragmentedMP4Parser.h │ │ │ │ ├── HTTPBase.h │ │ │ │ ├── ID3.h │ │ │ │ ├── LiveSession.h │ │ │ │ ├── M3UParser.h │ │ │ │ ├── MP3Extractor.h │ │ │ │ ├── MP3Seeker.h │ │ │ │ ├── MPEG2PSExtractor.h │ │ │ │ ├── MPEG2TSExtractor.h │ │ │ │ ├── MPEG4Extractor.h │ │ │ │ ├── NuCachedSource2.h │ │ │ │ ├── OMX.h │ │ │ │ ├── OMXNodeInstance.h │ │ │ │ ├── OggExtractor.h │ │ │ │ ├── SampleIterator.h │ │ │ │ ├── SampleTable.h │ │ │ │ ├── SimpleSoftOMXComponent.h │ │ │ │ ├── SoftOMXComponent.h │ │ │ │ ├── SoftwareRenderer.h │ │ │ │ ├── StagefrightMetadataRetriever.h │ │ │ │ ├── ThrottledSource.h │ │ │ │ ├── TimedEventQueue.h │ │ │ │ ├── VBRISeeker.h │ │ │ │ ├── WAVExtractor.h │ │ │ │ ├── WVMExtractor.h │ │ │ │ ├── XINGSeeker.h │ │ │ │ ├── avc_utils.h │ │ │ │ └── chromium_http_stub.h │ │ │ ├── matroska │ │ │ │ ├── Android.mk │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ ├── MatroskaExtractor.cpp │ │ │ │ ├── MatroskaExtractor.h │ │ │ │ └── NOTICE │ │ │ ├── mp4 │ │ │ │ ├── FragmentedMP4Parser.cpp │ │ │ │ ├── TrackFragment.cpp │ │ │ │ └── TrackFragment.h │ │ │ ├── mpeg2ts │ │ │ │ ├── ATSParser.cpp │ │ │ │ ├── ATSParser.h │ │ │ │ ├── Android.mk │ │ │ │ ├── AnotherPacketSource.cpp │ │ │ │ ├── AnotherPacketSource.h │ │ │ │ ├── ESQueue.cpp │ │ │ │ ├── ESQueue.h │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ ├── MPEG2PSExtractor.cpp │ │ │ │ ├── MPEG2TSExtractor.cpp │ │ │ │ └── NOTICE │ │ │ ├── omx │ │ │ │ ├── Android.mk │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ ├── NOTICE │ │ │ │ ├── OMX.cpp │ │ │ │ ├── OMXMaster.cpp │ │ │ │ ├── OMXMaster.h │ │ │ │ ├── OMXNodeInstance.cpp │ │ │ │ ├── SimpleSoftOMXComponent.cpp │ │ │ │ ├── SoftOMXComponent.cpp │ │ │ │ ├── SoftOMXPlugin.cpp │ │ │ │ ├── SoftOMXPlugin.h │ │ │ │ └── tests │ │ │ │ │ ├── Android.mk │ │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ │ ├── NOTICE │ │ │ │ │ ├── OMXHarness.cpp │ │ │ │ │ └── OMXHarness.h │ │ │ ├── rtsp │ │ │ │ ├── AAMRAssembler.cpp │ │ │ │ ├── AAMRAssembler.h │ │ │ │ ├── AAVCAssembler.cpp │ │ │ │ ├── AAVCAssembler.h │ │ │ │ ├── AH263Assembler.cpp │ │ │ │ ├── AH263Assembler.h │ │ │ │ ├── AMPEG2TSAssembler.cpp │ │ │ │ ├── AMPEG2TSAssembler.h │ │ │ │ ├── AMPEG4AudioAssembler.cpp │ │ │ │ ├── AMPEG4AudioAssembler.h │ │ │ │ ├── AMPEG4ElementaryAssembler.cpp │ │ │ │ ├── AMPEG4ElementaryAssembler.h │ │ │ │ ├── APacketSource.cpp │ │ │ │ ├── APacketSource.h │ │ │ │ ├── ARTPAssembler.cpp │ │ │ │ ├── ARTPAssembler.h │ │ │ │ ├── ARTPConnection.cpp │ │ │ │ ├── ARTPConnection.h │ │ │ │ ├── ARTPSession.cpp │ │ │ │ ├── ARTPSession.h │ │ │ │ ├── ARTPSource.cpp │ │ │ │ ├── ARTPSource.h │ │ │ │ ├── ARTPWriter.cpp │ │ │ │ ├── ARTPWriter.h │ │ │ │ ├── ARTSPConnection.cpp │ │ │ │ ├── ARTSPConnection.h │ │ │ │ ├── ARawAudioAssembler.cpp │ │ │ │ ├── ARawAudioAssembler.h │ │ │ │ ├── ASessionDescription.cpp │ │ │ │ ├── ASessionDescription.h │ │ │ │ ├── Android.mk │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ ├── MyHandler.h │ │ │ │ ├── MyTransmitter.h │ │ │ │ ├── NOTICE │ │ │ │ ├── UDPPusher.cpp │ │ │ │ ├── UDPPusher.h │ │ │ │ ├── VideoSource.h │ │ │ │ └── rtp_test.cpp │ │ │ ├── tests │ │ │ │ ├── Android.mk │ │ │ │ ├── DummyRecorder.cpp │ │ │ │ ├── DummyRecorder.h │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ ├── NOTICE │ │ │ │ └── SurfaceMediaSource_test.cpp │ │ │ ├── timedtext │ │ │ │ ├── Android.mk │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ ├── NOTICE │ │ │ │ ├── TextDescriptions.cpp │ │ │ │ ├── TextDescriptions.h │ │ │ │ ├── TimedText3GPPSource.cpp │ │ │ │ ├── TimedText3GPPSource.h │ │ │ │ ├── TimedTextDriver.cpp │ │ │ │ ├── TimedTextPlayer.cpp │ │ │ │ ├── TimedTextPlayer.h │ │ │ │ ├── TimedTextSRTSource.cpp │ │ │ │ ├── TimedTextSRTSource.h │ │ │ │ ├── TimedTextSource.cpp │ │ │ │ ├── TimedTextSource.h │ │ │ │ └── test │ │ │ │ │ ├── Android.mk │ │ │ │ │ └── TimedTextSRTSource_test.cpp │ │ │ ├── wifi-display │ │ │ │ ├── ANetworkSession.cpp │ │ │ │ ├── ANetworkSession.h │ │ │ │ ├── Android.mk │ │ │ │ ├── Parameters.cpp │ │ │ │ ├── Parameters.h │ │ │ │ ├── ParsedMessage.cpp │ │ │ │ ├── ParsedMessage.h │ │ │ │ ├── TimeSeries.cpp │ │ │ │ ├── TimeSeries.h │ │ │ │ ├── sink │ │ │ │ │ ├── LinearRegression.cpp │ │ │ │ │ ├── LinearRegression.h │ │ │ │ │ ├── RTPSink.cpp │ │ │ │ │ ├── RTPSink.h │ │ │ │ │ ├── TunnelRenderer.cpp │ │ │ │ │ ├── TunnelRenderer.h │ │ │ │ │ ├── WifiDisplaySink.cpp │ │ │ │ │ └── WifiDisplaySink.h │ │ │ │ ├── source │ │ │ │ │ ├── Converter.cpp │ │ │ │ │ ├── Converter.h │ │ │ │ │ ├── MediaPuller.cpp │ │ │ │ │ ├── MediaPuller.h │ │ │ │ │ ├── PlaybackSession.cpp │ │ │ │ │ ├── PlaybackSession.h │ │ │ │ │ ├── RepeaterSource.cpp │ │ │ │ │ ├── RepeaterSource.h │ │ │ │ │ ├── Sender.cpp │ │ │ │ │ ├── Sender.h │ │ │ │ │ ├── TSPacketizer.cpp │ │ │ │ │ ├── TSPacketizer.h │ │ │ │ │ ├── WifiDisplaySource.cpp │ │ │ │ │ └── WifiDisplaySource.h │ │ │ │ ├── udptest.cpp │ │ │ │ └── wfd.cpp │ │ │ └── yuv │ │ │ │ ├── Android.mk │ │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ │ ├── NOTICE │ │ │ │ ├── YUVCanvas.cpp │ │ │ │ └── YUVImage.cpp │ │ └── native-lib.cpp │ ├── java │ │ └── com │ │ │ └── zxj │ │ │ └── android │ │ │ └── source │ │ │ └── MainActivity.java │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ └── test │ └── java │ └── com │ └── zxj │ └── android │ └── source │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | /.idea/caches 6 | /.idea/libraries 7 | /.idea/modules.xml 8 | /.idea/workspace.xml 9 | /.idea/navEditor.xml 10 | /.idea/assetWizardSettings.xml 11 | .DS_Store 12 | /build 13 | /captures 14 | .externalNativeBuild 15 | .cxx 16 | local.properties 17 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.application' 3 | } 4 | 5 | android { 6 | compileSdkVersion 30 7 | buildToolsVersion "30.0.0" 8 | 9 | defaultConfig { 10 | applicationId "com.zxj.android.source" 11 | minSdkVersion 16 12 | targetSdkVersion 30 13 | versionCode 1 14 | versionName "1.0" 15 | 16 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 17 | externalNativeBuild { 18 | cmake { 19 | cppFlags '' 20 | } 21 | } 22 | } 23 | 24 | buildTypes { 25 | release { 26 | minifyEnabled false 27 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 28 | } 29 | } 30 | compileOptions { 31 | sourceCompatibility JavaVersion.VERSION_1_8 32 | targetCompatibility JavaVersion.VERSION_1_8 33 | } 34 | externalNativeBuild { 35 | cmake { 36 | path file('src/main/cpp/CMakeLists.txt') 37 | version '3.10.2' 38 | } 39 | } 40 | buildFeatures { 41 | viewBinding true 42 | } 43 | } 44 | 45 | dependencies { 46 | 47 | implementation 'androidx.appcompat:appcompat:1.2.0' 48 | implementation 'com.google.android.material:material:1.2.1' 49 | implementation 'androidx.constraintlayout:constraintlayout:2.0.1' 50 | testImplementation 'junit:junit:4.+' 51 | androidTestImplementation 'androidx.test.ext:junit:1.1.3' 52 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' 53 | } -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app/src/androidTest/java/com/zxj/android/source/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.zxj.android.source; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | assertEquals("com.zxj.android.source", appContext.getPackageName()); 25 | } 26 | } -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/cpp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.10.2) 3 | 4 | 5 | project("source") 6 | 7 | include_directories(include) 8 | #include_directories(include/media/) 9 | 10 | #file(GLOB_RECURSE MIRACASTSRC 11 | # "media/libstagefright/*.h" 12 | # "media/libstagefright/*.cpp" 13 | # ) 14 | 15 | #file(GLOB source_file libstagefright/*.h libstagefright/*.cpp) 16 | file(GLOB_RECURSE source_file libstagefright/*.h libstagefright/*.cpp) 17 | 18 | add_library( 19 | native-lib 20 | SHARED 21 | 22 | ${source_file}) 23 | 24 | 25 | find_library( 26 | log-lib 27 | log ) 28 | 29 | target_link_libraries( 30 | native-lib 31 | ${log-lib} ) -------------------------------------------------------------------------------- /app/src/main/cpp/include/android/asset_manager_jni.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 18 | #ifndef ANDROID_ASSET_MANAGER_JNI_H 19 | #define ANDROID_ASSET_MANAGER_JNI_H 20 | 21 | #include 22 | #include 23 | 24 | #ifdef __cplusplus 25 | extern "C" { 26 | #endif 27 | 28 | /** 29 | * Given a Dalvik AssetManager object, obtain the corresponding native AAssetManager 30 | * object. Note that the caller is responsible for obtaining and holding a VM reference 31 | * to the jobject to prevent its being garbage collected while the native object is 32 | * in use. 33 | */ 34 | AAssetManager* AAssetManager_fromJava(JNIEnv* env, jobject assetManager); 35 | 36 | #ifdef __cplusplus 37 | }; 38 | #endif 39 | 40 | #endif // ANDROID_ASSET_MANAGER_JNI_H 41 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/android/native_window_jni.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef ANDROID_NATIVE_WINDOW_JNI_H 18 | #define ANDROID_NATIVE_WINDOW_JNI_H 19 | 20 | #include 21 | 22 | #include 23 | 24 | #ifdef __cplusplus 25 | extern "C" { 26 | #endif 27 | 28 | /** 29 | * Return the ANativeWindow associated with a Java Surface object, 30 | * for interacting with it through native code. This acquires a reference 31 | * on the ANativeWindow that is returned; be sure to use ANativeWindow_release() 32 | * when done with it so that it doesn't leak. 33 | */ 34 | ANativeWindow* ANativeWindow_fromSurface(JNIEnv* env, jobject surface); 35 | 36 | #ifdef __cplusplus 37 | }; 38 | #endif 39 | 40 | #endif // ANDROID_NATIVE_WINDOW_H 41 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/android/obb.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 18 | #ifndef ANDROID_OBB_H 19 | #define ANDROID_OBB_H 20 | 21 | #include 22 | 23 | #ifdef __cplusplus 24 | extern "C" { 25 | #endif 26 | 27 | struct AObbInfo; 28 | typedef struct AObbInfo AObbInfo; 29 | 30 | enum { 31 | AOBBINFO_OVERLAY = 0x0001, 32 | }; 33 | 34 | /** 35 | * Scan an OBB and get information about it. 36 | */ 37 | AObbInfo* AObbScanner_getObbInfo(const char* filename); 38 | 39 | /** 40 | * Destroy the AObbInfo object. You must call this when finished with the object. 41 | */ 42 | void AObbInfo_delete(AObbInfo* obbInfo); 43 | 44 | /** 45 | * Get the package name for the OBB. 46 | */ 47 | const char* AObbInfo_getPackageName(AObbInfo* obbInfo); 48 | 49 | /** 50 | * Get the version of an OBB file. 51 | */ 52 | int32_t AObbInfo_getVersion(AObbInfo* obbInfo); 53 | 54 | /** 55 | * Get the flags of an OBB file. 56 | */ 57 | int32_t AObbInfo_getFlags(AObbInfo* obbInfo); 58 | 59 | #ifdef __cplusplus 60 | }; 61 | #endif 62 | 63 | #endif // ANDROID_OBB_H 64 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/android/rect.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 18 | #ifndef ANDROID_RECT_H 19 | #define ANDROID_RECT_H 20 | 21 | #include 22 | 23 | #ifdef __cplusplus 24 | extern "C" { 25 | #endif 26 | 27 | typedef struct ARect { 28 | #ifdef __cplusplus 29 | typedef int32_t value_type; 30 | #endif 31 | int32_t left; 32 | int32_t top; 33 | int32_t right; 34 | int32_t bottom; 35 | } ARect; 36 | 37 | #ifdef __cplusplus 38 | }; 39 | #endif 40 | 41 | #endif // ANDROID_RECT_H 42 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/cpustats/README.txt: -------------------------------------------------------------------------------- 1 | This is a static library of CPU usage statistics, originally written 2 | for audio but most are not actually specific to audio. 3 | 4 | Requirements to be here: 5 | * should be related to CPU usage statistics 6 | * should be portable to host; avoid Android OS dependencies without a conditional 7 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/cutils/log.h: -------------------------------------------------------------------------------- 1 | #include 2 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/gui/DummyConsumer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef ANDROID_GUI_DUMMYCONSUMER_H 18 | #define ANDROID_GUI_DUMMYCONSUMER_H 19 | 20 | #include 21 | 22 | namespace android { 23 | // ---------------------------------------------------------------------------- 24 | 25 | 26 | // The DummyConsumer does not keep a reference to BufferQueue 27 | // unlike SurfaceTexture. This prevents a circular reference from 28 | // forming without having to use a ProxyConsumerListener 29 | class DummyConsumer : public BufferQueue::ConsumerListener { 30 | public: 31 | DummyConsumer(); 32 | virtual ~DummyConsumer(); 33 | protected: 34 | 35 | // Implementation of the BufferQueue::ConsumerListener interface. These 36 | // calls are used to notify the SurfaceTexture of asynchronous events in the 37 | // BufferQueue. 38 | virtual void onFrameAvailable(); 39 | virtual void onBuffersReleased(); 40 | 41 | }; 42 | 43 | // ---------------------------------------------------------------------------- 44 | }; // namespace android 45 | 46 | #endif // ANDROID_GUI_DUMMYCONSUMER_H 47 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/gui/GuiConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef ANDROID_GUI_CONFIG_H 18 | #define ANDROID_GUI_CONFIG_H 19 | 20 | #include 21 | 22 | namespace android { 23 | 24 | // Append the libgui configuration details to configStr. 25 | void appendGuiConfigString(String8& configStr); 26 | 27 | }; // namespace android 28 | 29 | #endif /*ANDROID_GUI_CONFIG_H*/ 30 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/ExtendedAudioBufferProvider.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef ANDROID_EXTENDED_AUDIO_BUFFER_PROVIDER_H 18 | #define ANDROID_EXTENDED_AUDIO_BUFFER_PROVIDER_H 19 | 20 | #include 21 | 22 | namespace android { 23 | 24 | class ExtendedAudioBufferProvider : public AudioBufferProvider { 25 | public: 26 | virtual size_t framesReady() const = 0; // see description at AudioFlinger.h 27 | }; 28 | 29 | } // namespace android 30 | 31 | #endif // ANDROID_EXTENDED_AUDIO_BUFFER_PROVIDER_H 32 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/IMediaPlayerClient.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef ANDROID_IMEDIAPLAYERCLIENT_H 18 | #define ANDROID_IMEDIAPLAYERCLIENT_H 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | namespace android { 25 | 26 | class IMediaPlayerClient: public IInterface 27 | { 28 | public: 29 | DECLARE_META_INTERFACE(MediaPlayerClient); 30 | 31 | virtual void notify(int msg, int ext1, int ext2, const Parcel *obj) = 0; 32 | }; 33 | 34 | // ---------------------------------------------------------------------------- 35 | 36 | class BnMediaPlayerClient: public BnInterface 37 | { 38 | public: 39 | virtual status_t onTransact( uint32_t code, 40 | const Parcel& data, 41 | Parcel* reply, 42 | uint32_t flags = 0); 43 | }; 44 | 45 | }; // namespace android 46 | 47 | #endif // ANDROID_IMEDIAPLAYERCLIENT_H 48 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/IMediaRecorderClient.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef ANDROID_IMEDIARECORDERCLIENT_H 18 | #define ANDROID_IMEDIARECORDERCLIENT_H 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | namespace android { 25 | 26 | class IMediaRecorderClient: public IInterface 27 | { 28 | public: 29 | DECLARE_META_INTERFACE(MediaRecorderClient); 30 | 31 | virtual void notify(int msg, int ext1, int ext2) = 0; 32 | }; 33 | 34 | // ---------------------------------------------------------------------------- 35 | 36 | class BnMediaRecorderClient: public BnInterface 37 | { 38 | public: 39 | virtual status_t onTransact( uint32_t code, 40 | const Parcel& data, 41 | Parcel* reply, 42 | uint32_t flags = 0); 43 | }; 44 | 45 | }; // namespace android 46 | 47 | #endif // ANDROID_IMEDIARECORDERCLIENT_H 48 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/MemoryLeakTrackUtil.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2011, The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | #ifndef MEMORY_LEAK_TRACK_UTIL_H 17 | #define MEMORY_LEAK_TRACK_UTIL_H 18 | 19 | namespace android { 20 | /* 21 | * Dump the memory address of the calling process to the given fd. 22 | */ 23 | extern void dumpMemoryAddresses(int fd); 24 | 25 | }; 26 | 27 | #endif // MEMORY_LEAK_TRACK_UTIL_H 28 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/nbaio/roundup.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef ROUNDUP_H 18 | #define ROUNDUP_H 19 | 20 | #ifdef __cplusplus 21 | extern "C" { 22 | #endif 23 | 24 | // Round up to the next highest power of 2 25 | unsigned roundup(unsigned v); 26 | 27 | #ifdef __cplusplus 28 | } 29 | #endif 30 | 31 | #endif // ROUNDUP_H 32 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/openmax/OMX_Other.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/include/media/openmax/OMX_Other.h -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/stagefright/JPEGSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef JPEG_SOURCE_H_ 18 | 19 | #define JPEG_SOURCE_H_ 20 | 21 | #include 22 | 23 | namespace android { 24 | 25 | class DataSource; 26 | class MediaBufferGroup; 27 | 28 | struct JPEGSource : public MediaSource { 29 | JPEGSource(const sp &source); 30 | 31 | virtual status_t start(MetaData *params = NULL); 32 | virtual status_t stop(); 33 | virtual sp getFormat(); 34 | 35 | virtual status_t read( 36 | MediaBuffer **buffer, const ReadOptions *options = NULL); 37 | 38 | protected: 39 | virtual ~JPEGSource(); 40 | 41 | private: 42 | sp mSource; 43 | MediaBufferGroup *mGroup; 44 | bool mStarted; 45 | off64_t mSize; 46 | int32_t mWidth, mHeight; 47 | off64_t mOffset; 48 | 49 | status_t parseJPEG(); 50 | 51 | JPEGSource(const JPEGSource &); 52 | JPEGSource &operator=(const JPEGSource &); 53 | }; 54 | 55 | } // namespace android 56 | 57 | #endif // JPEG_SOURCE_H_ 58 | 59 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/stagefright/NativeWindowWrapper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef NATIVE_WINDOW_WRAPPER_H_ 18 | 19 | #define NATIVE_WINDOW_WRAPPER_H_ 20 | 21 | #include 22 | 23 | namespace android { 24 | 25 | // SurfaceTextureClient derives from ANativeWindow which derives from multiple 26 | // base classes, in order to carry it in AMessages, we'll temporarily wrap it 27 | // into a NativeWindowWrapper. 28 | 29 | struct NativeWindowWrapper : RefBase { 30 | NativeWindowWrapper( 31 | const sp &surfaceTextureClient) : 32 | mSurfaceTextureClient(surfaceTextureClient) { } 33 | 34 | sp getNativeWindow() const { 35 | return mSurfaceTextureClient; 36 | } 37 | 38 | sp getSurfaceTextureClient() const { 39 | return mSurfaceTextureClient; 40 | } 41 | 42 | private: 43 | const sp mSurfaceTextureClient; 44 | 45 | DISALLOW_EVIL_CONSTRUCTORS(NativeWindowWrapper); 46 | }; 47 | 48 | } // namespace android 49 | 50 | #endif // NATIVE_WINDOW_WRAPPER_H_ 51 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/stagefright/OMXClient.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef OMX_CLIENT_H_ 18 | 19 | #define OMX_CLIENT_H_ 20 | 21 | #include 22 | 23 | namespace android { 24 | 25 | class OMXClient { 26 | public: 27 | OMXClient(); 28 | 29 | status_t connect(); 30 | void disconnect(); 31 | 32 | sp interface() { 33 | return mOMX; 34 | } 35 | 36 | private: 37 | sp mOMX; 38 | 39 | OMXClient(const OMXClient &); 40 | OMXClient &operator=(const OMXClient &); 41 | }; 42 | 43 | } // namespace android 44 | 45 | #endif // OMX_CLIENT_H_ 46 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/stagefright/StagefrightMediaScanner.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef STAGEFRIGHT_MEDIA_SCANNER_H_ 18 | 19 | #define STAGEFRIGHT_MEDIA_SCANNER_H_ 20 | 21 | #include 22 | 23 | namespace android { 24 | 25 | struct StagefrightMediaScanner : public MediaScanner { 26 | StagefrightMediaScanner(); 27 | virtual ~StagefrightMediaScanner(); 28 | 29 | virtual MediaScanResult processFile( 30 | const char *path, const char *mimeType, 31 | MediaScannerClient &client); 32 | 33 | virtual char *extractAlbumArt(int fd); 34 | 35 | private: 36 | StagefrightMediaScanner(const StagefrightMediaScanner &); 37 | StagefrightMediaScanner &operator=(const StagefrightMediaScanner &); 38 | 39 | MediaScanResult processFileInternal( 40 | const char *path, const char *mimeType, 41 | MediaScannerClient &client); 42 | }; 43 | 44 | } // namespace android 45 | 46 | #endif // STAGEFRIGHT_MEDIA_SCANNER_H_ 47 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/stagefright/TimeSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef TIME_SOURCE_H_ 18 | 19 | #define TIME_SOURCE_H_ 20 | 21 | #include 22 | 23 | namespace android { 24 | 25 | class TimeSource { 26 | public: 27 | TimeSource() {} 28 | virtual ~TimeSource() {} 29 | 30 | virtual int64_t getRealTimeUs() = 0; 31 | 32 | private: 33 | TimeSource(const TimeSource &); 34 | TimeSource &operator=(const TimeSource &); 35 | }; 36 | 37 | class SystemTimeSource : public TimeSource { 38 | public: 39 | SystemTimeSource(); 40 | 41 | virtual int64_t getRealTimeUs(); 42 | 43 | private: 44 | int64_t mStartTimeUs; 45 | }; 46 | 47 | } // namespace android 48 | 49 | #endif // TIME_SOURCE_H_ 50 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/stagefright/Utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef UTILS_H_ 18 | 19 | #define UTILS_H_ 20 | 21 | #include 22 | #include 23 | #include 24 | 25 | namespace android { 26 | 27 | #define FOURCC(c1, c2, c3, c4) \ 28 | (c1 << 24 | c2 << 16 | c3 << 8 | c4) 29 | 30 | uint16_t U16_AT(const uint8_t *ptr); 31 | uint32_t U32_AT(const uint8_t *ptr); 32 | uint64_t U64_AT(const uint8_t *ptr); 33 | 34 | uint16_t U16LE_AT(const uint8_t *ptr); 35 | uint32_t U32LE_AT(const uint8_t *ptr); 36 | uint64_t U64LE_AT(const uint8_t *ptr); 37 | 38 | uint64_t ntoh64(uint64_t x); 39 | uint64_t hton64(uint64_t x); 40 | 41 | struct MetaData; 42 | struct AMessage; 43 | status_t convertMetaDataToMessage( 44 | const sp &meta, sp *format); 45 | void convertMessageToMetaData( 46 | const sp &format, sp &meta); 47 | 48 | } // namespace android 49 | 50 | #endif // UTILS_H_ 51 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/stagefright/foundation/AAtomizer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef A_ATOMIZER_H_ 18 | 19 | #define A_ATOMIZER_H_ 20 | 21 | #include 22 | 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | 29 | namespace android { 30 | 31 | struct AAtomizer { 32 | static const char *Atomize(const char *name); 33 | 34 | private: 35 | static AAtomizer gAtomizer; 36 | 37 | Mutex mLock; 38 | Vector > mAtoms; 39 | 40 | AAtomizer(); 41 | 42 | const char *atomize(const char *name); 43 | 44 | static uint32_t Hash(const char *s); 45 | 46 | DISALLOW_EVIL_CONSTRUCTORS(AAtomizer); 47 | }; 48 | 49 | } // namespace android 50 | 51 | #endif // A_ATOMIZER_H_ 52 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/stagefright/foundation/ABase.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef A_BASE_H_ 18 | 19 | #define A_BASE_H_ 20 | 21 | #define DISALLOW_EVIL_CONSTRUCTORS(name) \ 22 | name(const name &); \ 23 | name &operator=(const name &) 24 | 25 | #endif // A_BASE_H_ 26 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/stagefright/foundation/ABitReader.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef A_BIT_READER_H_ 18 | 19 | #define A_BIT_READER_H_ 20 | 21 | #include 22 | 23 | #include 24 | #include 25 | 26 | namespace android { 27 | 28 | struct ABitReader { 29 | ABitReader(const uint8_t *data, size_t size); 30 | 31 | uint32_t getBits(size_t n); 32 | void skipBits(size_t n); 33 | 34 | void putBits(uint32_t x, size_t n); 35 | 36 | size_t numBitsLeft() const; 37 | 38 | const uint8_t *data() const; 39 | 40 | private: 41 | const uint8_t *mData; 42 | size_t mSize; 43 | 44 | uint32_t mReservoir; // left-aligned bits 45 | size_t mNumBitsLeft; 46 | 47 | void fillReservoir(); 48 | 49 | DISALLOW_EVIL_CONSTRUCTORS(ABitReader); 50 | }; 51 | 52 | } // namespace android 53 | 54 | #endif // A_BIT_READER_H_ 55 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/stagefright/foundation/AHandler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef A_HANDLER_H_ 18 | 19 | #define A_HANDLER_H_ 20 | 21 | #include 22 | #include 23 | 24 | namespace android { 25 | 26 | struct AMessage; 27 | 28 | struct AHandler : public RefBase { 29 | AHandler() 30 | : mID(0) { 31 | } 32 | 33 | ALooper::handler_id id() const { 34 | return mID; 35 | } 36 | 37 | sp looper(); 38 | 39 | protected: 40 | virtual void onMessageReceived(const sp &msg) = 0; 41 | 42 | private: 43 | friend struct ALooperRoster; 44 | 45 | ALooper::handler_id mID; 46 | 47 | void setID(ALooper::handler_id id) { 48 | mID = id; 49 | } 50 | 51 | DISALLOW_EVIL_CONSTRUCTORS(AHandler); 52 | }; 53 | 54 | } // namespace android 55 | 56 | #endif // A_HANDLER_H_ 57 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/stagefright/foundation/AHandlerReflector.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef A_HANDLER_REFLECTOR_H_ 18 | 19 | #define A_HANDLER_REFLECTOR_H_ 20 | 21 | #include 22 | 23 | namespace android { 24 | 25 | template 26 | struct AHandlerReflector : public AHandler { 27 | AHandlerReflector(T *target) 28 | : mTarget(target) { 29 | } 30 | 31 | protected: 32 | virtual void onMessageReceived(const sp &msg) { 33 | sp target = mTarget.promote(); 34 | if (target != NULL) { 35 | target->onMessageReceived(msg); 36 | } 37 | } 38 | 39 | private: 40 | wp mTarget; 41 | 42 | AHandlerReflector(const AHandlerReflector &); 43 | AHandlerReflector &operator=(const AHandlerReflector &); 44 | }; 45 | 46 | } // namespace android 47 | 48 | #endif // A_HANDLER_REFLECTOR_H_ 49 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/stagefright/foundation/base64.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef BASE_64_H_ 18 | 19 | #define BASE_64_H_ 20 | 21 | #include 22 | 23 | namespace android { 24 | 25 | struct ABuffer; 26 | struct AString; 27 | 28 | sp decodeBase64(const AString &s); 29 | void encodeBase64(const void *data, size_t size, AString *out); 30 | 31 | } // namespace android 32 | 33 | #endif // BASE_64_H_ 34 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/media/stagefright/foundation/hexdump.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef HEXDUMP_H_ 18 | 19 | #define HEXDUMP_H_ 20 | 21 | #include 22 | 23 | namespace android { 24 | 25 | struct AString; 26 | 27 | void hexdump( 28 | const void *_data, size_t size, 29 | size_t indent = 0, AString *appendTo = NULL); 30 | 31 | } // namespace android 32 | 33 | #endif // HEXDUMP_H_ 34 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/powermanager/IPowerManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef ANDROID_IPOWERMANAGER_H 18 | #define ANDROID_IPOWERMANAGER_H 19 | 20 | #include 21 | #include 22 | 23 | namespace android { 24 | 25 | // ---------------------------------------------------------------------------- 26 | 27 | // must be kept in sync with interface defined in IPowerManager.aidl 28 | class IPowerManager : public IInterface 29 | { 30 | public: 31 | DECLARE_META_INTERFACE(PowerManager); 32 | 33 | virtual status_t acquireWakeLock(int flags, const sp& lock, const String16& tag) = 0; 34 | virtual status_t releaseWakeLock(const sp& lock, int flags) = 0; 35 | }; 36 | 37 | // ---------------------------------------------------------------------------- 38 | 39 | }; // namespace android 40 | 41 | #endif // ANDROID_IPOWERMANAGER_H 42 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/powermanager/PowerManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef ANDROID_POWERMANAGER_H 18 | #define ANDROID_POWERMANAGER_H 19 | 20 | namespace android { 21 | 22 | // must be kept in sync with definitions in PowerManager.java 23 | enum { 24 | POWERMANAGER_PARTIAL_WAKE_LOCK = 1, // equals PowerManager.PARTIAL_WAKE_LOCK constant 25 | }; 26 | 27 | }; // namespace android 28 | 29 | #endif // ANDROID_POWERMANAGER_H 30 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/private/binder/Static.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | // All static variables go here, to control initialization and 18 | // destruction order in the library. 19 | 20 | #include 21 | 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | 28 | namespace android { 29 | 30 | // For ProcessState.cpp 31 | extern Mutex gProcessMutex; 32 | extern sp gProcess; 33 | 34 | // For ServiceManager.cpp 35 | extern Mutex gDefaultServiceManagerLock; 36 | extern sp gDefaultServiceManager; 37 | extern sp gPermissionController; 38 | 39 | } // namespace android 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/private/binder/binder_module.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef _BINDER_MODULE_H_ 18 | #define _BINDER_MODULE_H_ 19 | 20 | #ifdef __cplusplus 21 | namespace android { 22 | #endif 23 | 24 | /* obtain structures and constants from the kernel header */ 25 | 26 | #include 27 | #include 28 | 29 | #ifdef __cplusplus 30 | } // namespace android 31 | #endif 32 | 33 | #endif // _BINDER_MODULE_H_ 34 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/private/utils/Static.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | // All static variables go here, to control initialization and 18 | // destruction order in the library. 19 | 20 | #include 21 | #include 22 | 23 | namespace android { 24 | // For TextStream.cpp 25 | extern Vector gTextBuffers; 26 | 27 | // For String8.cpp 28 | extern void initialize_string8(); 29 | extern void terminate_string8(); 30 | 31 | // For String16.cpp 32 | extern void initialize_string16(); 33 | extern void terminate_string16(); 34 | 35 | } // namespace android 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/ui/DisplayInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef ANDROID_UI_DISPLAY_INFO_H 18 | #define ANDROID_UI_DISPLAY_INFO_H 19 | 20 | #include 21 | #include 22 | 23 | #include 24 | 25 | namespace android { 26 | 27 | struct DisplayInfo { 28 | uint32_t w; 29 | uint32_t h; 30 | float xdpi; 31 | float ydpi; 32 | float fps; 33 | float density; 34 | uint8_t orientation; 35 | bool secure; 36 | uint8_t reserved[2]; 37 | // TODO: this needs to go away (currently needed only by webkit) 38 | PixelFormatInfo pixelFormatInfo; 39 | }; 40 | 41 | /* Display orientations as defined in Surface.java and ISurfaceComposer.h. */ 42 | enum { 43 | DISPLAY_ORIENTATION_0 = 0, 44 | DISPLAY_ORIENTATION_90 = 1, 45 | DISPLAY_ORIENTATION_180 = 2, 46 | DISPLAY_ORIENTATION_270 = 3 47 | }; 48 | 49 | }; // namespace android 50 | 51 | #endif // ANDROID_COMPOSER_DISPLAY_INFO_H 52 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/ui/UiConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef ANDROID_UI_CONFIG_H 18 | #define ANDROID_UI_CONFIG_H 19 | 20 | #include 21 | 22 | namespace android { 23 | 24 | // Append the libui configuration details to configStr. 25 | void appendUiConfigString(String8& configStr); 26 | 27 | }; // namespace android 28 | 29 | #endif /*ANDROID_UI_CONFIG_H*/ 30 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/utils/Atomic.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef ANDROID_UTILS_ATOMIC_H 18 | #define ANDROID_UTILS_ATOMIC_H 19 | 20 | #include 21 | 22 | #endif // ANDROID_UTILS_ATOMIC_H 23 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/utils/Compat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __LIB_UTILS_COMPAT_H 18 | #define __LIB_UTILS_COMPAT_H 19 | 20 | #include 21 | 22 | /* Compatibility definitions for non-Linux (i.e., BSD-based) hosts. */ 23 | #ifndef HAVE_OFF64_T 24 | #if _FILE_OFFSET_BITS < 64 25 | #error "_FILE_OFFSET_BITS < 64; large files are not supported on this platform" 26 | #endif /* _FILE_OFFSET_BITS < 64 */ 27 | 28 | typedef off_t off64_t; 29 | 30 | static inline off64_t lseek64(int fd, off64_t offset, int whence) { 31 | return lseek(fd, offset, whence); 32 | } 33 | 34 | #ifdef HAVE_PREAD 35 | static inline ssize_t pread64(int fd, void* buf, size_t nbytes, off64_t offset) { 36 | return pread(fd, buf, nbytes, offset); 37 | } 38 | #endif 39 | 40 | #endif /* !HAVE_OFF64_T */ 41 | 42 | #endif /* __LIB_UTILS_COMPAT_H */ 43 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/utils/Endian.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | // 18 | // Android endian-ness defines. 19 | // 20 | #ifndef _LIBS_UTILS_ENDIAN_H 21 | #define _LIBS_UTILS_ENDIAN_H 22 | 23 | #if defined(HAVE_ENDIAN_H) 24 | 25 | #include 26 | 27 | #else /*not HAVE_ENDIAN_H*/ 28 | 29 | #define __BIG_ENDIAN 0x1000 30 | #define __LITTLE_ENDIAN 0x0001 31 | 32 | #if defined(HAVE_LITTLE_ENDIAN) 33 | # define __BYTE_ORDER __LITTLE_ENDIAN 34 | #else 35 | # define __BYTE_ORDER __BIG_ENDIAN 36 | #endif 37 | 38 | #endif /*not HAVE_ENDIAN_H*/ 39 | 40 | #endif /*_LIBS_UTILS_ENDIAN_H*/ 41 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/utils/Functor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef ANDROID_FUNCTOR_H 18 | #define ANDROID_FUNCTOR_H 19 | 20 | #include 21 | 22 | namespace android { 23 | 24 | class Functor { 25 | public: 26 | Functor() {} 27 | virtual ~Functor() {} 28 | virtual status_t operator ()(int what, void* data) { return NO_ERROR; } 29 | }; 30 | 31 | }; // namespace android 32 | 33 | #endif // ANDROID_FUNCTOR_H 34 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/utils/SystemClock.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef ANDROID_UTILS_SYSTEMCLOCK_H 18 | #define ANDROID_UTILS_SYSTEMCLOCK_H 19 | 20 | #include 21 | #include 22 | 23 | namespace android { 24 | 25 | int setCurrentTimeMillis(int64_t millis); 26 | int64_t uptimeMillis(); 27 | int64_t elapsedRealtime(); 28 | int64_t elapsedRealtimeNano(); 29 | 30 | }; // namespace android 31 | 32 | #endif // ANDROID_UTILS_SYSTEMCLOCK_H 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/utils/ashmem.h: -------------------------------------------------------------------------------- 1 | /* utils/ashmem.h 2 | ** 3 | ** Copyright 2008 The Android Open Source Project 4 | ** 5 | ** This file is dual licensed. It may be redistributed and/or modified 6 | ** under the terms of the Apache 2.0 License OR version 2 of the GNU 7 | ** General Public License. 8 | */ 9 | 10 | #ifndef _UTILS_ASHMEM_H 11 | #define _UTILS_ASHMEM_H 12 | 13 | #include 14 | #include 15 | 16 | #define ASHMEM_NAME_LEN 256 17 | 18 | #define ASHMEM_NAME_DEF "dev/ashmem" 19 | 20 | /* Return values from ASHMEM_PIN: Was the mapping purged while unpinned? */ 21 | #define ASHMEM_NOT_REAPED 0 22 | #define ASHMEM_WAS_REAPED 1 23 | 24 | /* Return values from ASHMEM_UNPIN: Is the mapping now pinned or unpinned? */ 25 | #define ASHMEM_NOW_UNPINNED 0 26 | #define ASHMEM_NOW_PINNED 1 27 | 28 | #define __ASHMEMIOC 0x77 29 | 30 | #define ASHMEM_SET_NAME _IOW(__ASHMEMIOC, 1, char[ASHMEM_NAME_LEN]) 31 | #define ASHMEM_GET_NAME _IOR(__ASHMEMIOC, 2, char[ASHMEM_NAME_LEN]) 32 | #define ASHMEM_SET_SIZE _IOW(__ASHMEMIOC, 3, size_t) 33 | #define ASHMEM_GET_SIZE _IO(__ASHMEMIOC, 4) 34 | #define ASHMEM_SET_PROT_MASK _IOW(__ASHMEMIOC, 5, unsigned long) 35 | #define ASHMEM_GET_PROT_MASK _IO(__ASHMEMIOC, 6) 36 | #define ASHMEM_PIN _IO(__ASHMEMIOC, 7) 37 | #define ASHMEM_UNPIN _IO(__ASHMEMIOC, 8) 38 | #define ASHMEM_ISPINNED _IO(__ASHMEMIOC, 9) 39 | #define ASHMEM_PURGE_ALL_CACHES _IO(__ASHMEMIOC, 10) 40 | 41 | #endif /* _UTILS_ASHMEM_H */ 42 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/utils/threads.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef _LIBS_UTILS_THREADS_H 18 | #define _LIBS_UTILS_THREADS_H 19 | 20 | /* 21 | * Please, DO NOT USE! 22 | * 23 | * This file is here only for legacy reasons. Instead, include directly 24 | * the headers you need below. 25 | * 26 | */ 27 | 28 | #include 29 | 30 | #ifdef __cplusplus 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #endif 37 | 38 | #endif // _LIBS_UTILS_THREADS_H 39 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/TimeSource.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #include 18 | #include 19 | 20 | #include 21 | #include 22 | 23 | namespace android { 24 | 25 | SystemTimeSource::SystemTimeSource() 26 | : mStartTimeUs(ALooper::GetNowUs()) { 27 | } 28 | 29 | int64_t SystemTimeSource::getRealTimeUs() { 30 | return ALooper::GetNowUs() - mStartTimeUs; 31 | } 32 | 33 | } // namespace android 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/chromium_http/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | 3 | ifneq ($(TARGET_BUILD_PDK), true) 4 | include $(CLEAR_VARS) 5 | 6 | LOCAL_SRC_FILES:= \ 7 | DataUriSource.cpp \ 8 | ChromiumHTTPDataSource.cpp \ 9 | support.cpp \ 10 | chromium_http_stub.cpp 11 | 12 | LOCAL_C_INCLUDES:= \ 13 | $(TOP)/frameworks/av/media/libstagefright \ 14 | $(TOP)/frameworks/native/include/media/openmax \ 15 | external/chromium \ 16 | external/chromium/android 17 | 18 | LOCAL_CFLAGS += -Wno-multichar 19 | 20 | LOCAL_SHARED_LIBRARIES += \ 21 | libstlport \ 22 | libchromium_net \ 23 | libutils \ 24 | libcutils \ 25 | libstagefright_foundation \ 26 | libstagefright \ 27 | libdrmframework 28 | 29 | include external/stlport/libstlport.mk 30 | 31 | LOCAL_MODULE:= libstagefright_chromium_http 32 | 33 | LOCAL_MODULE_TAGS := optional 34 | 35 | include $(BUILD_SHARED_LIBRARY) 36 | endif 37 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/chromium_http/chromium_http_stub.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #include 18 | 19 | #include 20 | #include 21 | #include 22 | 23 | namespace android { 24 | 25 | HTTPBase *createChromiumHTTPDataSource(uint32_t flags) { 26 | return new ChromiumHTTPDataSource(flags); 27 | } 28 | 29 | DataSource *createDataUriSource(const char *uri) { 30 | return new DataUriSource(uri); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | include $(call all-makefiles-under,$(LOCAL_PATH)) 5 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacdec/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | 5 | LOCAL_SRC_FILES := \ 6 | SoftAAC2.cpp 7 | 8 | LOCAL_C_INCLUDES := \ 9 | frameworks/av/media/libstagefright/include \ 10 | frameworks/native/include/media/openmax \ 11 | external/aac/libAACdec/include \ 12 | external/aac/libPCMutils/include \ 13 | external/aac/libFDK/include \ 14 | external/aac/libMpegTPDec/include \ 15 | external/aac/libSBRdec/include \ 16 | external/aac/libSYS/include 17 | 18 | LOCAL_CFLAGS := 19 | 20 | LOCAL_STATIC_LIBRARIES := libFraunhoferAAC 21 | 22 | LOCAL_SHARED_LIBRARIES := \ 23 | libstagefright_omx libstagefright_foundation libutils libcutils 24 | 25 | LOCAL_MODULE := libstagefright_soft_aacdec 26 | LOCAL_MODULE_TAGS := optional 27 | 28 | include $(BUILD_SHARED_LIBRARY) 29 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacdec/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/aacdec/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/aacenc/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/SampleCode/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES := \ 5 | AAC_E_SAMPLES.c \ 6 | ../../common/cmnMemory.c 7 | 8 | LOCAL_MODULE_TAGS := debug 9 | 10 | LOCAL_MODULE := AACEncTest 11 | 12 | LOCAL_ARM_MODE := arm 13 | 14 | LOCAL_SHARED_LIBRARIES := \ 15 | libstagefright \ 16 | libdl 17 | 18 | LOCAL_C_INCLUDES := \ 19 | $(LOCAL_PATH)/ \ 20 | $(LOCAL_PATH)/../../common \ 21 | $(LOCAL_PATH)/../../common/include \ 22 | 23 | include $(BUILD_EXECUTABLE) 24 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/SampleCode/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/aacenc/SampleCode/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/doc/voAACEncoderSDK.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/aacenc/doc/voAACEncoderSDK.pdf -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/inc/band_nrg.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | /******************************************************************************* 17 | File: band_nrg.h 18 | 19 | Content: Band/Line energy calculations functions 20 | 21 | *******************************************************************************/ 22 | 23 | 24 | #ifndef _BAND_NRG_H 25 | #define _BAND_NRG_H 26 | 27 | #include "typedef.h" 28 | 29 | 30 | void CalcBandEnergy(const Word32 *mdctSpectrum, 31 | const Word16 *bandOffset, 32 | const Word16 numBands, 33 | Word32 *bandEnergy, 34 | Word32 *bandEnergySum); 35 | 36 | 37 | void CalcBandEnergyMS(const Word32 *mdctSpectrumLeft, 38 | const Word32 *mdctSpectrumRight, 39 | const Word16 *bandOffset, 40 | const Word16 numBands, 41 | Word32 *bandEnergyMid, 42 | Word32 *bandEnergyMidSum, 43 | Word32 *bandEnergySide, 44 | Word32 *bandEnergySideSum); 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/inc/bitenc.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | /******************************************************************************* 17 | File: bitenc.h 18 | 19 | Content: Bitstream encoder structure and functions 20 | 21 | *******************************************************************************/ 22 | 23 | #ifndef _BITENC_H 24 | #define _BITENC_H 25 | 26 | #include "qc_data.h" 27 | #include "tns.h" 28 | #include "channel_map.h" 29 | #include "interface.h" 30 | 31 | struct BITSTREAMENCODER_INIT 32 | { 33 | Word16 nChannels; 34 | Word32 bitrate; 35 | Word32 sampleRate; 36 | Word16 profile; 37 | }; 38 | 39 | 40 | 41 | Word16 WriteBitstream (HANDLE_BIT_BUF hBitstream, 42 | ELEMENT_INFO elInfo, 43 | QC_OUT *qcOut, 44 | PSY_OUT *psyOut, 45 | Word16 *globUsedBits, 46 | const UWord8 *ancBytes, 47 | Word16 samplerate 48 | ); 49 | 50 | #endif /* _BITENC_H */ 51 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/inc/channel_map.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | /******************************************************************************* 17 | File: channel_map.h 18 | 19 | Content: channel mapping functions 20 | 21 | *******************************************************************************/ 22 | 23 | #ifndef _CHANNEL_MAP_H 24 | #define _CHANNEL_MAP_H 25 | 26 | #include "psy_const.h" 27 | #include "qc_data.h" 28 | 29 | Word16 InitElementInfo (Word16 nChannels, ELEMENT_INFO* elInfo); 30 | 31 | Word16 InitElementBits(ELEMENT_BITS *elementBits, 32 | ELEMENT_INFO elInfo, 33 | Word32 bitrateTot, 34 | Word16 averageBitsTot, 35 | Word16 staticBitsTot); 36 | 37 | #endif /* CHANNEL_MAP_H */ 38 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/inc/config.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | /******************************************************************************* 17 | File: config.h 18 | 19 | Content: aac encoder parameter 20 | 21 | *******************************************************************************/ 22 | 23 | #ifndef _AACENC_CONFIG_H_ 24 | #define _AACENC_CONFIG_H_ 25 | 26 | #define MAX_CHANNELS 2 27 | 28 | #define AACENC_BLOCKSIZE 1024 /*! encoder only takes BLOCKSIZE samples at a time */ 29 | #define AACENC_TRANS_FAC 8 /*! encoder short long ratio */ 30 | 31 | 32 | #define MAXBITS_COEF 6144 33 | #define MINBITS_COEF 744 34 | 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/inc/grp_data.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | /******************************************************************************* 17 | File: grp_data.h 18 | 19 | Content: Short block grouping function 20 | 21 | *******************************************************************************/ 22 | 23 | #ifndef __GRP_DATA_H__ 24 | #define __GRP_DATA_H__ 25 | #include "psy_data.h" 26 | #include "typedefs.h" 27 | 28 | void 29 | groupShortData(Word32 *mdctSpectrum, 30 | Word32 *tmpSpectrum, 31 | SFB_THRESHOLD *sfbThreshold, 32 | SFB_ENERGY *sfbEnergy, 33 | SFB_ENERGY *sfbEnergyMS, 34 | SFB_ENERGY *sfbSpreadedEnergy, 35 | const Word16 sfbCnt, 36 | const Word16 *sfbOffset, 37 | const Word16 *sfbMinSnr, 38 | Word16 *groupedSfbOffset, 39 | Word16 *maxSfbPerGroup, 40 | Word16 *groupedSfbMinSnr, 41 | const Word16 noOfGroups, 42 | const Word16 *groupLen); 43 | 44 | #endif /* _INTERFACE_H */ 45 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/inc/memalign.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | /******************************************************************************* 17 | File: memalign.h 18 | 19 | Content: Memory alloc alignments functions 20 | 21 | *******************************************************************************/ 22 | 23 | #ifndef __VO_AACENC_MEM_ALIGN_H__ 24 | #define __VO_AACENC_MEM_ALIGN_H__ 25 | 26 | #include "voMem.h" 27 | #include "typedef.h" 28 | 29 | extern void *mem_malloc(VO_MEM_OPERATOR *pMemop, unsigned int size, unsigned char alignment, unsigned int CodecID); 30 | extern void mem_free(VO_MEM_OPERATOR *pMemop, void *mem_ptr, unsigned int CodecID); 31 | 32 | #endif /* __VO_MEM_ALIGN_H__ */ 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/inc/pre_echo_control.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | /******************************************************************************* 17 | File: pre_echo_control.h 18 | 19 | Content: Pre echo control functions 20 | 21 | *******************************************************************************/ 22 | 23 | #ifndef __PRE_ECHO_CONTROL_H 24 | #define __PRE_ECHO_CONTROL_H 25 | 26 | #include "typedefs.h" 27 | 28 | void InitPreEchoControl(Word32 *pbThresholdnm1, 29 | Word16 numPb, 30 | Word32 *pbThresholdQuiet); 31 | 32 | 33 | void PreEchoControl(Word32 *pbThresholdNm1, 34 | Word16 numPb, 35 | Word32 maxAllowedIncreaseFactor, 36 | Word16 minRemainingThresholdFactor, 37 | Word32 *pbThreshold, 38 | Word16 mdctScale, 39 | Word16 mdctScalenm1); 40 | 41 | #endif 42 | 43 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/inc/quantize.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | /******************************************************************************* 17 | File: quantize.h 18 | 19 | Content: Quantization functions 20 | 21 | *******************************************************************************/ 22 | 23 | #ifndef _QUANTIZE_H_ 24 | #define _QUANTIZE_H_ 25 | #include "typedefs.h" 26 | 27 | /* quantizing */ 28 | 29 | #define MAX_QUANT 8191 30 | 31 | void QuantizeSpectrum(Word16 sfbCnt, 32 | Word16 maxSfbPerGroup, 33 | Word16 sfbPerGroup, 34 | Word16 *sfbOffset, Word32 *mdctSpectrum, 35 | Word16 globalGain, Word16 *scalefactors, 36 | Word16 *quantizedSpectrum); 37 | 38 | Word32 calcSfbDist(const Word32 *spec, 39 | Word16 sfbWidth, 40 | Word16 gain); 41 | 42 | #endif /* _QUANTIZE_H_ */ 43 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/inc/spreading.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | /******************************************************************************* 17 | File: spreading.h 18 | 19 | Content: Spreading of energy functions 20 | 21 | *******************************************************************************/ 22 | 23 | #ifndef _SPREADING_H 24 | #define _SPREADING_H 25 | #include "typedefs.h" 26 | 27 | 28 | void SpreadingMax(const Word16 pbCnt, 29 | const Word16 *maskLowFactor, 30 | const Word16 *maskHighFactor, 31 | Word32 *pbSpreadedEnergy); 32 | 33 | #endif /* #ifndef _SPREADING_H */ 34 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/inc/stat_bits.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | /******************************************************************************* 17 | File: stat_bits.h 18 | 19 | Content: Static bit counter functions 20 | 21 | *******************************************************************************/ 22 | 23 | #ifndef __STAT_BITS_H 24 | #define __STAT_BITS_H 25 | 26 | #include "psy_const.h" 27 | #include "interface.h" 28 | 29 | Word16 countStaticBitdemand(PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS], 30 | PSY_OUT_ELEMENT *psyOutElement, 31 | Word16 nChannels, 32 | Word16 adtsUsed); 33 | 34 | #endif /* __STAT_BITS_H */ 35 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/inc/tns_param.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | /******************************************************************************* 17 | File: tns_param.h 18 | 19 | Content: TNS parameters 20 | 21 | *******************************************************************************/ 22 | 23 | /* 24 | TNS parameters 25 | */ 26 | #ifndef _TNS_PARAM_H 27 | #define _TNS_PARAM_H 28 | 29 | #include "tns.h" 30 | 31 | typedef struct{ 32 | Word32 samplingRate; 33 | Word16 maxBandLong; 34 | Word16 maxBandShort; 35 | }TNS_MAX_TAB_ENTRY; 36 | 37 | typedef struct{ 38 | Word32 bitRateFrom; 39 | Word32 bitRateTo; 40 | const TNS_CONFIG_TABULATED *paramMono_Long; /* contains TNS parameters */ 41 | const TNS_CONFIG_TABULATED *paramMono_Short; 42 | const TNS_CONFIG_TABULATED *paramStereo_Long; 43 | const TNS_CONFIG_TABULATED *paramStereo_Short; 44 | }TNS_INFO_TAB; 45 | 46 | 47 | void GetTnsParam(TNS_CONFIG_TABULATED *tnsConfigTab, 48 | Word32 bitRate, Word16 channels, Word16 blockType); 49 | 50 | void GetTnsMaxBands(Word32 samplingRate, Word16 blockType, Word16* tnsMaxSfb); 51 | 52 | #endif /* _TNS_PARAM_H */ 53 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/inc/transform.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | /******************************************************************************* 17 | File: transform.h 18 | 19 | Content: MDCT Transform functions 20 | 21 | *******************************************************************************/ 22 | 23 | #ifndef __TRANSFORM_H__ 24 | #define __TRANSFORM_H__ 25 | 26 | #include "typedef.h" 27 | 28 | void Transform_Real(Word16 *mdctDelayBuffer, 29 | Word16 *timeSignal, 30 | Word16 chIncrement, /*! channel increment */ 31 | Word32 *realOut, 32 | Word16 *mdctScale, 33 | Word16 windowSequence 34 | ); 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/aacenc/patent_disclaimer.txt: -------------------------------------------------------------------------------- 1 | 2 | THIS IS NOT A GRANT OF PATENT RIGHTS. 3 | 4 | Google makes no representation or warranty that the codecs for which 5 | source code is made available hereunder are unencumbered by 6 | third-party patents. Those intending to use this source code in 7 | hardware or software products are advised that implementations of 8 | these codecs, including in open source software or shareware, may 9 | require patent licenses from the relevant patent holders. 10 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrnb/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | include $(call all-makefiles-under,$(LOCAL_PATH)) 5 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrnb/common/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/amrnb/common/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrnb/common/include/n_proc.h: -------------------------------------------------------------------------------- 1 | /* ------------------------------------------------------------------ 2 | * Copyright (C) 1998-2009 PacketVideo 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 | * express or implied. 14 | * See the License for the specific language governing permissions 15 | * and limitations under the License. 16 | * ------------------------------------------------------------------- 17 | */ 18 | /**************************************************************************************** 19 | Portions of this file are derived from the following 3GPP standard: 20 | 21 | 3GPP TS 26.073 22 | ANSI-C code for the Adaptive Multi-Rate (AMR) speech codec 23 | Available from http://www.3gpp.org 24 | 25 | (C) 2004, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC) 26 | Permission to distribute, modify and use this file under the standard license 27 | terms listed above has been obtained from the copyright holder. 28 | ****************************************************************************************/ 29 | /* $Id $ */ 30 | 31 | void proc_head(char *mes); 32 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrnb/dec/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/amrnb/dec/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrnb/enc/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/amrnb/enc/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrnb/patent_disclaimer.txt: -------------------------------------------------------------------------------- 1 | 2 | THIS IS NOT A GRANT OF PATENT RIGHTS. 3 | 4 | Google makes no representation or warranty that the codecs for which 5 | source code is made available hereunder are unencumbered by 6 | third-party patents. Those intending to use this source code in 7 | hardware or software products are advised that implementations of 8 | these codecs, including in open source software or shareware, may 9 | require patent licenses from the relevant patent holders. 10 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrwb/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES := \ 5 | src/agc2_amr_wb.cpp \ 6 | src/band_pass_6k_7k.cpp \ 7 | src/dec_acelp_2p_in_64.cpp \ 8 | src/dec_acelp_4p_in_64.cpp \ 9 | src/dec_alg_codebook.cpp \ 10 | src/dec_gain2_amr_wb.cpp \ 11 | src/deemphasis_32.cpp \ 12 | src/dtx_decoder_amr_wb.cpp \ 13 | src/get_amr_wb_bits.cpp \ 14 | src/highpass_400hz_at_12k8.cpp \ 15 | src/highpass_50hz_at_12k8.cpp \ 16 | src/homing_amr_wb_dec.cpp \ 17 | src/interpolate_isp.cpp \ 18 | src/isf_extrapolation.cpp \ 19 | src/isp_az.cpp \ 20 | src/isp_isf.cpp \ 21 | src/lagconceal.cpp \ 22 | src/low_pass_filt_7k.cpp \ 23 | src/median5.cpp \ 24 | src/mime_io.cpp \ 25 | src/noise_gen_amrwb.cpp \ 26 | src/normalize_amr_wb.cpp \ 27 | src/oversamp_12k8_to_16k.cpp \ 28 | src/phase_dispersion.cpp \ 29 | src/pit_shrp.cpp \ 30 | src/pred_lt4.cpp \ 31 | src/preemph_amrwb_dec.cpp \ 32 | src/pvamrwb_math_op.cpp \ 33 | src/pvamrwbdecoder.cpp \ 34 | src/q_gain2_tab.cpp \ 35 | src/qisf_ns.cpp \ 36 | src/qisf_ns_tab.cpp \ 37 | src/qpisf_2s.cpp \ 38 | src/qpisf_2s_tab.cpp \ 39 | src/scale_signal.cpp \ 40 | src/synthesis_amr_wb.cpp \ 41 | src/voice_factor.cpp \ 42 | src/wb_syn_filt.cpp \ 43 | src/weight_amrwb_lpc.cpp 44 | 45 | LOCAL_C_INCLUDES := \ 46 | frameworks/av/media/libstagefright/include \ 47 | $(LOCAL_PATH)/src \ 48 | $(LOCAL_PATH)/include 49 | 50 | LOCAL_CFLAGS := \ 51 | -DOSCL_UNUSED_ARG= -DOSCL_IMPORT_REF= 52 | 53 | LOCAL_MODULE := libstagefright_amrwbdec 54 | 55 | include $(BUILD_STATIC_LIBRARY) 56 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrwb/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/amrwb/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrwb/patent_disclaimer.txt: -------------------------------------------------------------------------------- 1 | 2 | THIS IS NOT A GRANT OF PATENT RIGHTS. 3 | 4 | Google makes no representation or warranty that the codecs for which 5 | source code is made available hereunder are unencumbered by 6 | third-party patents. Those intending to use this source code in 7 | hardware or software products are advised that implementations of 8 | these codecs, including in open source software or shareware, may 9 | require patent licenses from the relevant patent holders. 10 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrwbenc/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/amrwbenc/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrwbenc/SampleCode/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES := \ 5 | AMRWB_E_SAMPLE.c \ 6 | ../../common/cmnMemory.c 7 | 8 | LOCAL_MODULE_TAGS := debug 9 | LOCAL_MODULE := AMRWBEncTest 10 | 11 | LOCAL_ARM_MODE := arm 12 | 13 | LOCAL_CFLAGS := -DLINUX 14 | 15 | LOCAL_SHARED_LIBRARIES := \ 16 | libstagefright \ 17 | libdl 18 | 19 | LOCAL_C_INCLUDES := \ 20 | $(LOCAL_PATH)/ \ 21 | $(LOCAL_PATH)/../../common \ 22 | $(LOCAL_PATH)/../../common/include 23 | 24 | include $(BUILD_EXECUTABLE) 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrwbenc/SampleCode/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/amrwbenc/SampleCode/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrwbenc/doc/voAMRWBEncoderSDK.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/amrwbenc/doc/voAMRWBEncoderSDK.pdf -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrwbenc/inc/log2_tab.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | ** Copyright 2003-2010, VisualOn, Inc. 4 | ** 5 | ** Licensed under the Apache License, Version 2.0 (the "License"); 6 | ** you may not use this file except in compliance with the License. 7 | ** You may obtain a copy of the License at 8 | ** 9 | ** http://www.apache.org/licenses/LICENSE-2.0 10 | ** 11 | ** Unless required by applicable law or agreed to in writing, software 12 | ** distributed under the License is distributed on an "AS IS" BASIS, 13 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | ** See the License for the specific language governing permissions and 15 | ** limitations under the License. 16 | */ 17 | 18 | 19 | 20 | /******************************************************************************* 21 | * 22 | * File : log2.tab 23 | * Purpose : Table for routine Log2(). 24 | * $Id $ 25 | * 26 | ******************************************************************************** 27 | */ 28 | static const Word16 table[33] = 29 | { 30 | 0, 1455, 2866, 4236, 5568, 6863, 8124, 9352, 10549, 11716, 31 | 12855, 13967, 15054, 16117, 17156, 18172, 19167, 20142, 21097, 22033, 32 | 22951, 23852, 24735, 25603, 26455, 27291, 28113, 28922, 29716, 30497, 33 | 31266, 32023, 32767 34 | }; 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrwbenc/inc/mem_align.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | /******************************************************************************* 17 | File: mem_align.h 18 | 19 | Content: Memory alloc alignments functions 20 | 21 | *******************************************************************************/ 22 | 23 | #ifndef __VO_MEM_ALIGN_H__ 24 | #define __VO_MEM_ALIGN_H__ 25 | 26 | #include "voMem.h" 27 | #include "typedef.h" 28 | 29 | extern void *mem_malloc(VO_MEM_OPERATOR *pMemop, unsigned int size, unsigned char alignment, unsigned int CodecID); 30 | extern void mem_free(VO_MEM_OPERATOR *pMemop, void *mem_ptr, unsigned int CodecID); 31 | 32 | #endif /* __VO_MEM_ALIGN_H__ */ 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrwbenc/inc/oper_32b.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | 17 | 18 | /* Double precision operations */ 19 | /* $Id$ */ 20 | 21 | #ifndef __OPER_32B_H__ 22 | #define __OPER_32B_H__ 23 | 24 | void VO_L_Extract (Word32 L_32, Word16 *hi, Word16 *lo); 25 | Word32 L_Comp (Word16 hi, Word16 lo); 26 | Word32 Mpy_32 (Word16 hi1, Word16 lo1, Word16 hi2, Word16 lo2); 27 | Word32 Mpy_32_16 (Word16 hi, Word16 lo, Word16 n); 28 | Word32 Div_32 (Word32 L_num, Word16 denom_hi, Word16 denom_lo); 29 | 30 | #endif //__OPER_32B_H__ 31 | 32 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrwbenc/inc/stream.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | ** Copyright 2003-2010, VisualOn, Inc. 4 | ** 5 | ** Licensed under the Apache License, Version 2.0 (the "License"); 6 | ** you may not use this file except in compliance with the License. 7 | ** You may obtain a copy of the License at 8 | ** 9 | ** http://www.apache.org/licenses/LICENSE-2.0 10 | ** 11 | ** Unless required by applicable law or agreed to in writing, software 12 | ** distributed under the License is distributed on an "AS IS" BASIS, 13 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | ** See the License for the specific language governing permissions and 15 | ** limitations under the License. 16 | */ 17 | 18 | 19 | /*********************************************************************** 20 | File: stream.h 21 | 22 | Contains: VOME API Buffer Operator Implement Header 23 | 24 | ************************************************************************/ 25 | #ifndef __STREAM_H__ 26 | #define __STREAM_H__ 27 | 28 | #include "voMem.h" 29 | #define Frame_Maxsize 1024 * 2 //Work Buffer 10K 30 | #define Frame_MaxByte 640 //AMR_WB Encoder one frame 320 samples = 640 Bytes 31 | #define MIN(a,b) ((a) < (b)? (a) : (b)) 32 | 33 | typedef struct{ 34 | unsigned char *set_ptr; 35 | unsigned char *frame_ptr; 36 | unsigned char *frame_ptr_bk; 37 | int set_len; 38 | int framebuffer_len; 39 | int frame_storelen; 40 | int used_len; 41 | }FrameStream; 42 | 43 | void voAWB_UpdateFrameBuffer(FrameStream *stream, VO_MEM_OPERATOR *pMemOP); 44 | void voAWB_InitFrameBuffer(FrameStream *stream); 45 | void voAWB_FlushFrameBuffer(FrameStream *stream); 46 | #endif //__STREAM_H__ 47 | 48 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrwbenc/patent_disclaimer.txt: -------------------------------------------------------------------------------- 1 | 2 | THIS IS NOT A GRANT OF PATENT RIGHTS. 3 | 4 | Google makes no representation or warranty that the codecs for which 5 | source code is made available hereunder are unencumbered by 6 | third-party patents. Those intending to use this source code in 7 | hardware or software products are advised that implementations of 8 | these codecs, including in open source software or shareware, may 9 | require patent licenses from the relevant patent holders. 10 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrwbenc/src/homing.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | 17 | /*********************************************************************** 18 | * File: homing.c * 19 | * * 20 | * Description:Performs the homing routines * 21 | * * 22 | ************************************************************************/ 23 | 24 | #include "typedef.h" 25 | #include "cnst.h" 26 | #include "basic_op.h" 27 | #include "bits.h" 28 | #include "homing.tab" 29 | 30 | Word16 encoder_homing_frame_test(Word16 input_frame[]) 31 | { 32 | Word32 i; 33 | Word16 j = 0; 34 | 35 | /* check 320 input samples for matching EHF_MASK: defined in e_homing.h */ 36 | for (i = 0; i < L_FRAME16k; i++) 37 | { 38 | j = (Word16) (input_frame[i] ^ EHF_MASK); 39 | 40 | if (j) 41 | break; 42 | } 43 | 44 | return (Word16) (!j); 45 | } 46 | 47 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/amrwbenc/src/random.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2003-2010, VisualOn, Inc. 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | 17 | /*********************************************************************** 18 | * File: random.c * 19 | * * 20 | * Description: Signed 16 bits random generator * 21 | * * 22 | ************************************************************************/ 23 | 24 | #include "typedef.h" 25 | #include "basic_op.h" 26 | 27 | Word16 Random(Word16 * seed) 28 | { 29 | /* static Word16 seed = 21845; */ 30 | *seed = (Word16)(L_add((L_mult(*seed, 31821) >> 1), 13849L)); 31 | return (*seed); 32 | } 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/avc/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | include $(call all-makefiles-under,$(LOCAL_PATH)) 5 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/avc/common/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES := \ 5 | src/deblock.cpp \ 6 | src/dpb.cpp \ 7 | src/fmo.cpp \ 8 | src/mb_access.cpp \ 9 | src/reflist.cpp 10 | 11 | LOCAL_MODULE := libstagefright_avc_common 12 | 13 | LOCAL_CFLAGS := -DOSCL_EXPORT_REF= -DOSCL_IMPORT_REF= 14 | 15 | LOCAL_C_INCLUDES := \ 16 | $(LOCAL_PATH)/src \ 17 | $(LOCAL_PATH)/include 18 | 19 | include $(BUILD_SHARED_LIBRARY) 20 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/avc/common/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/avc/common/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/avc/common/include/avc_types.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | #ifndef AVC_TYPES_H_ 17 | 18 | #define AVC_TYPES_H_ 19 | 20 | #include 21 | 22 | typedef uint8_t uint8; 23 | typedef uint16_t uint16; 24 | typedef int16_t int16; 25 | typedef uint32_t uint32; 26 | typedef int32_t int32; 27 | typedef unsigned int uint; 28 | 29 | #endif // AVC_TYPES_H_ 30 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/avc/enc/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/avc/enc/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/avc/patent_disclaimer.txt: -------------------------------------------------------------------------------- 1 | 2 | THIS IS NOT A GRANT OF PATENT RIGHTS. 3 | 4 | Google makes no representation or warranty that the codecs for which 5 | source code is made available hereunder are unencumbered by 6 | third-party patents. Those intending to use this source code in 7 | hardware or software products are advised that implementations of 8 | these codecs, including in open source software or shareware, may 9 | require patent licenses from the relevant patent holders. 10 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/common/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | 5 | 6 | LOCAL_SRC_FILES := cmnMemory.c 7 | 8 | LOCAL_MODULE := libstagefright_enc_common 9 | 10 | LOCAL_ARM_MODE := arm 11 | 12 | LOCAL_STATIC_LIBRARIES := 13 | 14 | LOCAL_C_INCLUDES := \ 15 | $(LOCAL_PATH)/include 16 | 17 | include $(BUILD_SHARED_LIBRARY) 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/common/Config.mk: -------------------------------------------------------------------------------- 1 | # 2 | # This configure file is just for Linux projects against Android 3 | # 4 | 5 | VOPRJ := 6 | VONJ := 7 | 8 | # WARNING: 9 | # Using v7 breaks generic build 10 | ifeq ($(TARGET_ARCH),arm) 11 | VOTT := v5 12 | else 13 | VOTT := pc 14 | endif 15 | 16 | # Do we also need to check on ARCH_ARM_HAVE_ARMV7A? - probably not 17 | ifeq ($(ARCH_ARM_HAVE_NEON),true) 18 | VOTT := v7 19 | endif 20 | 21 | VOTEST := 0 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/common/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/common/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/flac/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | include $(call all-makefiles-under,$(LOCAL_PATH)) 5 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/flac/enc/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES := \ 5 | SoftFlacEncoder.cpp 6 | 7 | LOCAL_C_INCLUDES := \ 8 | frameworks/av/media/libstagefright/include \ 9 | frameworks/native/include/media/openmax \ 10 | external/flac/include 11 | 12 | LOCAL_SHARED_LIBRARIES := \ 13 | libstagefright libstagefright_omx libstagefright_foundation libutils 14 | 15 | LOCAL_STATIC_LIBRARIES := \ 16 | libFLAC \ 17 | 18 | LOCAL_MODULE := libstagefright_soft_flacenc 19 | LOCAL_MODULE_TAGS := optional 20 | 21 | include $(BUILD_SHARED_LIBRARY) 22 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/flac/enc/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/flac/enc/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/g711/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | include $(call all-makefiles-under,$(LOCAL_PATH)) 5 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/g711/dec/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES := \ 5 | SoftG711.cpp 6 | 7 | LOCAL_C_INCLUDES := \ 8 | frameworks/av/media/libstagefright/include \ 9 | frameworks/native/include/media/openmax 10 | 11 | LOCAL_SHARED_LIBRARIES := \ 12 | libstagefright libstagefright_omx libstagefright_foundation libutils 13 | 14 | LOCAL_MODULE := libstagefright_soft_g711dec 15 | LOCAL_MODULE_TAGS := optional 16 | 17 | include $(BUILD_SHARED_LIBRARY) 18 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/g711/dec/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/g711/dec/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/m4v_h263/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | include $(call all-makefiles-under,$(LOCAL_PATH)) 5 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/m4v_h263/dec/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/m4v_h263/dec/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/m4v_h263/dec/src/mbtype_mode.h: -------------------------------------------------------------------------------- 1 | /* ------------------------------------------------------------------ 2 | * Copyright (C) 1998-2009 PacketVideo 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 | * express or implied. 14 | * See the License for the specific language governing permissions 15 | * and limitations under the License. 16 | * ------------------------------------------------------------------- 17 | */ 18 | const static int MBtype_mode[] = 19 | { 20 | MODE_INTER, 21 | MODE_INTER_Q, 22 | MODE_INTER4V, 23 | MODE_INTRA, 24 | MODE_INTRA_Q, 25 | #ifdef PV_ANNEX_IJKT_SUPPORT 26 | MODE_INTER4V_Q, 27 | #endif 28 | MODE_SKIPPED 29 | }; 30 | #ifdef PV_ANNEX_IJKT_SUPPORT 31 | const static int16 DQ_tab_Annex_T_10[32] = {0, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3}; 32 | const static int16 DQ_tab_Annex_T_11[32] = {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, -5}; 33 | const static int16 MQ_chroma_QP_table[32] = {0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 34 | 14, 14, 14, 14, 14, 15, 15, 15, 15, 15 35 | }; 36 | #endif 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/m4v_h263/enc/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/m4v_h263/enc/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/m4v_h263/patent_disclaimer.txt: -------------------------------------------------------------------------------- 1 | 2 | THIS IS NOT A GRANT OF PATENT RIGHTS. 3 | 4 | Google makes no representation or warranty that the codecs for which 5 | source code is made available hereunder are unencumbered by 6 | third-party patents. Those intending to use this source code in 7 | hardware or software products are advised that implementations of 8 | these codecs, including in open source software or shareware, may 9 | require patent licenses from the relevant patent holders. 10 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/mp3dec/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/mp3dec/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/mp3dec/include/mp3_decoder_selection.h: -------------------------------------------------------------------------------- 1 | /* ------------------------------------------------------------------ 2 | * Copyright (C) 1998-2009 PacketVideo 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 | * express or implied. 14 | * See the License for the specific language governing permissions 15 | * and limitations under the License. 16 | * ------------------------------------------------------------------- 17 | */ 18 | /*! \file mp3_decoder_selection.h 19 | * \brief select mp3 decoder 20 | * 21 | */ 22 | 23 | #ifndef MP3_DECODER_SELECTION_H 24 | #define MP3_DECODER_SELECTION_H 25 | 26 | 27 | #define NEW_PV_MP3_DECODER 1 // 1 == PV mp3 decoder 28 | 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/mp3dec/patent_disclaimer.txt: -------------------------------------------------------------------------------- 1 | 2 | THIS IS NOT A GRANT OF PATENT RIGHTS. 3 | 4 | Google makes no representation or warranty that the codecs for which 5 | source code is made available hereunder are unencumbered by 6 | third-party patents. Those intending to use this source code in 7 | hardware or software products are advised that implementations of 8 | these codecs, including in open source software or shareware, may 9 | require patent licenses from the relevant patent holders. 10 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | include $(call all-makefiles-under,$(LOCAL_PATH)) 5 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/dec/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES := \ 5 | SoftVPX.cpp 6 | 7 | LOCAL_C_INCLUDES := \ 8 | $(TOP)/external/libvpx \ 9 | $(TOP)/external/libvpx/vpx_codec \ 10 | $(TOP)/external/libvpx/vpx_ports \ 11 | frameworks/av/media/libstagefright/include \ 12 | frameworks/native/include/media/openmax \ 13 | 14 | LOCAL_STATIC_LIBRARIES := \ 15 | libvpx 16 | 17 | LOCAL_SHARED_LIBRARIES := \ 18 | libstagefright libstagefright_omx libstagefright_foundation libutils 19 | 20 | LOCAL_MODULE := libstagefright_soft_vpxdec 21 | LOCAL_MODULE_TAGS := optional 22 | 23 | include $(BUILD_SHARED_LIBRARY) 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/dec/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/dec/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/inc/basetype.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 18 | #ifndef BASETYPE_H_INCLUDED 19 | #define BASETYPE_H_INCLUDED 20 | 21 | 22 | #ifdef __arm 23 | #define VOLATILE volatile 24 | #else 25 | #define VOLATILE 26 | #endif 27 | 28 | typedef unsigned char u8; 29 | typedef signed char i8; 30 | typedef unsigned short u16; 31 | typedef signed short i16; 32 | typedef unsigned int u32; 33 | typedef signed int i32; 34 | 35 | #if defined(VC1SWDEC_16BIT) || defined(MP4ENC_ARM11) 36 | typedef unsigned short u16x; 37 | typedef signed short i16x; 38 | #else 39 | typedef unsigned int u16x; 40 | typedef signed int i16x; 41 | #endif 42 | 43 | 44 | #ifndef NULL 45 | #ifdef __cplusplus 46 | #define NULL 0 47 | #else 48 | #define NULL ((void *)0) 49 | #endif 50 | #endif 51 | 52 | #endif /* BASETYPE_H_INCLUDED */ 53 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/api/armCOMM_IDCTTable.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * File Name: armCOMM_IDCTTable.h 5 | * OpenMAX DL: v1.0.2 6 | * Revision: 9641 7 | * Date: Thursday, February 7, 2008 8 | * 9 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 10 | * 11 | * 12 | * 13 | * File : armCOMM_IDCTTable.h 14 | * Description : Contains declarations of tables for IDCT calculation. 15 | * 16 | */ 17 | 18 | #ifndef _armCOMM_IDCTTable_H_ 19 | #define _armCOMM_IDCTTable_H_ 20 | 21 | #include "omxtypes.h" 22 | 23 | /* Table of s(u)*A(u)*A(v)/16 at Q15 24 | * s(u)=1.0 0 <= u <= 5 25 | * s(6)=2.0 26 | * s(7)=4.0 27 | * A(0) = 2*sqrt(2) 28 | * A(u) = 4*cos(u*pi/16) for (u!=0) 29 | */ 30 | extern const OMX_U16 armCOMM_IDCTPreScale [64]; 31 | extern const OMX_U16 armCOMM_IDCTCoef [4]; 32 | 33 | #endif /* _armCOMM_IDCTTable_H_ */ 34 | 35 | 36 | /* End of File */ 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/api/armCOMM_MaskTable.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * File Name: armCOMM_MaskTable.h 4 | * OpenMAX DL: v1.0.2 5 | * Revision: 9641 6 | * Date: Thursday, February 7, 2008 7 | * 8 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 9 | * 10 | * 11 | * 12 | * Mask Table to mask the end of array 13 | */ 14 | 15 | 16 | 17 | #ifndef _ARMCOMM_MASKTABLE_H_ 18 | #define _ARMCOMM_MASKTABLE_H_ 19 | 20 | #define MaskTableSize 72 21 | 22 | /* Mask table */ 23 | 24 | extern const OMX_U16 armCOMM_qMaskTable16[MaskTableSize]; 25 | extern const OMX_U8 armCOMM_qMaskTable8[MaskTableSize]; 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/api/omxtypes.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/api/omxtypes.h -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/vc/api/armVC.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/vc/api/armVC.h -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/vc/api/omxVC.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/vc/api/omxVC.h -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/vc/api/omxVC_s.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/vc/api/omxVC_s.h -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/vc/m4p10/api/armVCM4P10_CAVLCTables.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------- 2 | * 3 | * 4 | * File Name: armVCM4P10_CAVLCTables.h 5 | * OpenMAX DL: v1.0.2 6 | * Revision: 9641 7 | * Date: Thursday, February 7, 2008 8 | * 9 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 10 | * 11 | * 12 | * 13 | * Header file for optimized H.264 CALVC tables 14 | * 15 | */ 16 | 17 | #ifndef ARMVCM4P10_CAVLCTABLES_H 18 | #define ARMVCM4P10_CAVLCTABLES_H 19 | 20 | /* CAVLC tables */ 21 | 22 | extern const OMX_U16 *armVCM4P10_CAVLCCoeffTokenTables[18]; 23 | extern const OMX_U16 *armVCM4P10_CAVLCTotalZeroTables[15]; 24 | extern const OMX_U16 *armVCM4P10_CAVLCTotalZeros2x2Tables[3]; 25 | extern const OMX_U16 *armVCM4P10_CAVLCRunBeforeTables[15]; 26 | extern const OMX_U8 armVCM4P10_ZigZag_4x4[16]; 27 | extern const OMX_U8 armVCM4P10_ZigZag_2x2[4]; 28 | extern const OMX_S8 armVCM4P10_SuffixToLevel[7]; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/vc/m4p10/src/armVCM4P10_DeblockingChroma_unsafe_s.s: -------------------------------------------------------------------------------- 1 | ;// 2 | ;// 3 | ;// File Name: armVCM4P10_DeblockingChroma_unsafe_s.s 4 | ;// OpenMAX DL: v1.0.2 5 | ;// Revision: 9641 6 | ;// Date: Thursday, February 7, 2008 7 | ;// 8 | ;// (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 9 | ;// 10 | ;// 11 | ;// 12 | 13 | INCLUDE omxtypes_s.h 14 | INCLUDE armCOMM_s.h 15 | 16 | M_VARIANTS ARM1136JS 17 | 18 | 19 | 20 | END -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/vc/m4p10/src/omxVCM4P10_DecodeCoeffsToPairCAVLC.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/vc/m4p10/src/omxVCM4P10_DecodeCoeffsToPairCAVLC.c -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/vc/m4p2/api/armVCM4P2_Huff_Tables_VLC.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * File Name: armVCM4P2_Huff_Tables_VLC.h 4 | * OpenMAX DL: v1.0.2 5 | * Revision: 9641 6 | * Date: Thursday, February 7, 2008 7 | * 8 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 9 | * 10 | * 11 | * 12 | * 13 | * File: armVCM4P2_Huff_Tables.h 14 | * Description: Declares Tables used for Hufffman coding and decoding 15 | * in MP4P2 codec. 16 | * 17 | */ 18 | 19 | #ifndef _OMXHUFFTAB_H_ 20 | #define _OMXHUFFTAB_H_ 21 | 22 | 23 | extern const OMX_U16 armVCM4P2_IntraVlcL0L1[200]; 24 | 25 | 26 | extern const OMX_U16 armVCM4P2_InterVlcL0L1[200]; 27 | 28 | extern const OMX_U16 armVCM4P2_aIntraDCLumaChromaIndex[64]; 29 | //extern const OMX_U16 armVCM4P2_aIntraDCChromaIndex[32]; 30 | extern const OMX_U16 armVCM4P2_aVlcMVD[124]; 31 | 32 | extern const OMX_U8 armVCM4P2_InterL0L1LMAX[73]; 33 | extern const OMX_U8 armVCM4P2_InterL0L1RMAX[35]; 34 | extern const OMX_U8 armVCM4P2_IntraL0L1LMAX[53]; 35 | extern const OMX_U8 armVCM4P2_IntraL0L1RMAX[40] 36 | 37 | #endif /* _OMXHUFFTAB_H_ */ 38 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/vc/m4p2/api/armVCM4P2_ZigZag_Tables.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * File Name: armVCM4P2_ZigZag_Tables.h 4 | * OpenMAX DL: v1.0.2 5 | * Revision: 9641 6 | * Date: Thursday, February 7, 2008 7 | * 8 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 9 | * 10 | * 11 | * 12 | * 13 | * File: armVCM4P2_Zigzag_Tables.h 14 | * Description: Declares Tables used for Zigzag scan in MP4P2 codec. 15 | * 16 | */ 17 | 18 | #ifndef _OMXZIGZAGTAB_H 19 | #define _OMXZIGZAGTAB_H 20 | 21 | extern const OMX_U8 armVCM4P2_aClassicalZigzagScan [192]; 22 | //extern const OMX_U8 armVCM4P2_aHorizontalZigzagScan [64]; 23 | //extern const OMX_U8 armVCM4P2_aVerticalZigzagScan [64]; 24 | 25 | #endif /* _OMXZIGZAGTAB_H_ */ 26 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm11/vc/src/armVC_Version.c: -------------------------------------------------------------------------------- 1 | #include "omxtypes.h" 2 | #include "armCOMM_Version.h" 3 | 4 | #ifdef ARM_INCLUDE_VERSION_DESCRIPTIONS 5 | const char * const omxVC_VersionDescription = "ARM OpenMAX DL v" ARM_VERSION_STRING " Rel=" OMX_ARM_RELEASE_TAG " Arch=" OMX_ARM_BUILD_ARCHITECTURE " Tools=" OMX_ARM_BUILD_TOOLCHAIN ; 6 | #endif /* ARM_INCLUDE_VERSION_DESCRIPTIONS */ 7 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/api/armCOMM_IDCTTable.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * File Name: armCOMM_IDCTTable.h 5 | * OpenMAX DL: v1.0.2 6 | * Revision: 12290 7 | * Date: Wednesday, April 9, 2008 8 | * 9 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 10 | * 11 | * 12 | * 13 | * File : armCOMM_IDCTTable.h 14 | * Description : Contains declarations of tables for IDCT calculation. 15 | * 16 | */ 17 | 18 | #ifndef _armCOMM_IDCTTable_H_ 19 | #define _armCOMM_IDCTTable_H_ 20 | 21 | #include "omxtypes.h" 22 | 23 | /* Table of s(u)*A(u)*A(v)/16 at Q15 24 | * s(u)=1.0 0 <= u <= 5 25 | * s(6)=2.0 26 | * s(7)=4.0 27 | * A(0) = 2*sqrt(2) 28 | * A(u) = 4*cos(u*pi/16) for (u!=0) 29 | */ 30 | extern const OMX_U16 armCOMM_IDCTPreScale [64]; 31 | extern const OMX_U16 armCOMM_IDCTCoef [4]; 32 | 33 | #endif /* _armCOMM_IDCTTable_H_ */ 34 | 35 | 36 | /* End of File */ 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/api/armCOMM_MaskTable.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * File Name: armCOMM_MaskTable.h 4 | * OpenMAX DL: v1.0.2 5 | * Revision: 12290 6 | * Date: Wednesday, April 9, 2008 7 | * 8 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 9 | * 10 | * 11 | * 12 | * Mask Table to mask the end of array 13 | */ 14 | 15 | 16 | 17 | #ifndef _ARMCOMM_MASKTABLE_H_ 18 | #define _ARMCOMM_MASKTABLE_H_ 19 | 20 | #define MaskTableSize 72 21 | 22 | /* Mask table */ 23 | 24 | extern const OMX_U16 armCOMM_qMaskTable16[MaskTableSize]; 25 | extern const OMX_U8 armCOMM_qMaskTable8[MaskTableSize]; 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/api/omxtypes.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/api/omxtypes.h -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/api/armVC.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/api/armVC.h -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/api/omxVC.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/api/omxVC.h -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/api/armVCM4P10_CAVLCTables.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------- 2 | * 3 | * 4 | * File Name: armVCM4P10_CAVLCTables.h 5 | * OpenMAX DL: v1.0.2 6 | * Revision: 12290 7 | * Date: Wednesday, April 9, 2008 8 | * 9 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 10 | * 11 | * 12 | * 13 | * Header file for optimized H.264 CALVC tables 14 | * 15 | */ 16 | 17 | #ifndef ARMVCM4P10_CAVLCTABLES_H 18 | #define ARMVCM4P10_CAVLCTABLES_H 19 | 20 | /* CAVLC tables */ 21 | 22 | extern const OMX_U16 *armVCM4P10_CAVLCCoeffTokenTables[18]; 23 | extern const OMX_U16 *armVCM4P10_CAVLCTotalZeroTables[15]; 24 | extern const OMX_U16 *armVCM4P10_CAVLCTotalZeros2x2Tables[3]; 25 | extern const OMX_U16 *armVCM4P10_CAVLCRunBeforeTables[15]; 26 | extern const OMX_U8 armVCM4P10_ZigZag_4x4[16]; 27 | extern const OMX_U8 armVCM4P10_ZigZag_2x2[4]; 28 | extern const OMX_S8 armVCM4P10_SuffixToLevel[7]; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src/omxVCM4P10_DecodeCoeffsToPairCAVLC.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src/omxVCM4P10_DecodeCoeffsToPairCAVLC.c -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DeblockingChroma_unsafe_s.S: -------------------------------------------------------------------------------- 1 | /* 2 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 3 | * 4 | */ 5 | 6 | .eabi_attribute 24, 1 7 | .eabi_attribute 25, 1 8 | 9 | .arm 10 | .fpu neon 11 | .text 12 | 13 | .global armVCM4P10_DeblockingChromabSLT4_unsafe 14 | .func armVCM4P10_DeblockingChromabSLT4_unsafe 15 | armVCM4P10_DeblockingChromabSLT4_unsafe: 16 | VLD1.32 {d18[0]},[r5]! 17 | VSUBL.U8 q11,d5,d9 18 | VMOV d28,d18 19 | VSUBL.U8 q10,d8,d4 20 | VSHR.S16 q11,q11,#2 21 | VZIP.8 d18,d28 22 | VBIF d18,d14,d16 23 | VRHADD.S16 q10,q11,q10 24 | VADD.I8 d31,d18,d15 25 | VQMOVN.S16 d20,q10 26 | VLD1.8 {d0[]},[r2] 27 | VMIN.S8 d20,d20,d31 28 | VNEG.S8 d31,d31 29 | VLD1.8 {d2[]},[r3] 30 | VMAX.S8 d20,d20,d31 31 | VMOVL.U8 q14,d4 32 | VMOVL.U8 q12,d8 33 | VADDW.S8 q14,q14,d20 34 | VSUBW.S8 q12,q12,d20 35 | VQMOVUN.S16 d29,q14 36 | VQMOVUN.S16 d24,q12 37 | BX lr 38 | .endfunc 39 | 40 | .global armVCM4P10_DeblockingChromabSGE4_unsafe 41 | .func armVCM4P10_DeblockingChromabSGE4_unsafe 42 | armVCM4P10_DeblockingChromabSGE4_unsafe: 43 | VHADD.U8 d13,d4,d9 44 | VHADD.U8 d31,d8,d5 45 | VLD1.8 {d0[]},[r2] 46 | ADD r5,r5,#4 47 | VLD1.8 {d2[]},[r3] 48 | VRHADD.U8 d13,d13,d5 49 | VRHADD.U8 d31,d31,d9 50 | BX lr 51 | .endfunc 52 | 53 | .end 54 | 55 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe_s.S: -------------------------------------------------------------------------------- 1 | /* 2 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 3 | * 4 | */ 5 | 6 | .eabi_attribute 24, 1 7 | .eabi_attribute 25, 1 8 | 9 | .arm 10 | .fpu neon 11 | .text 12 | 13 | .global armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 14 | .func armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 15 | armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe: 16 | PUSH {r4-r12,lr} 17 | VLD1.8 {d7},[r0],r1 18 | ADD r12,r0,r1,LSL #2 19 | VLD1.8 {d8},[r0],r1 20 | VLD1.8 {d12},[r12],r1 21 | VLD1.8 {d9},[r0],r1 22 | VADDL.U8 q0,d7,d12 23 | VLD1.8 {d10},[r0],r1 24 | VLD1.8 {d13},[r12],r1 25 | VLD1.8 {d11},[r0],r1 26 | VLD1.8 {d14},[r12],r1 27 | VADDL.U8 q8,d8,d11 28 | VADDL.U8 q9,d9,d10 29 | VLD1.8 {d15},[r12],r1 30 | VMLS.I16 d0,d16,d30 31 | VMUL.I16 d20,d18,d31 32 | VADDL.U8 q8,d9,d12 33 | VADDL.U8 q9,d10,d11 34 | VADDL.U8 q1,d8,d13 35 | VMLS.I16 d2,d16,d30 36 | VMUL.I16 d21,d18,d31 37 | VADDL.U8 q8,d10,d13 38 | VADDL.U8 q9,d11,d12 39 | VADDL.U8 q2,d9,d14 40 | VMLS.I16 d4,d16,d30 41 | VMUL.I16 d22,d18,d31 42 | VADDL.U8 q8,d11,d14 43 | VADDL.U8 q3,d10,d15 44 | VADDL.U8 q9,d12,d13 45 | VMLS.I16 d6,d16,d30 46 | VADD.I16 d0,d0,d20 47 | VADD.I16 d2,d2,d21 48 | VADD.I16 d4,d4,d22 49 | VMLA.I16 d6,d18,d31 50 | VQRSHRUN.S16 d0,q0,#5 51 | VQRSHRUN.S16 d2,q1,#5 52 | VQRSHRUN.S16 d4,q2,#5 53 | VQRSHRUN.S16 d6,q3,#5 54 | POP {r4-r12,pc} 55 | .endfunc 56 | 57 | .end 58 | 59 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_TransformResidual4x4_s.S: -------------------------------------------------------------------------------- 1 | /* 2 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 3 | * 4 | */ 5 | 6 | .eabi_attribute 24, 1 7 | .eabi_attribute 25, 1 8 | 9 | .arm 10 | .fpu neon 11 | .text 12 | 13 | .global armVCM4P10_TransformResidual4x4 14 | .func armVCM4P10_TransformResidual4x4 15 | armVCM4P10_TransformResidual4x4: 16 | VPUSH {d8} 17 | VLD4.16 {d0,d1,d2,d3},[r1] 18 | VMOV.I16 d4,#0 19 | VADD.I16 d5,d0,d2 20 | VSUB.I16 d6,d0,d2 21 | VHADD.S16 d7,d1,d4 22 | VHADD.S16 d8,d3,d4 23 | VSUB.I16 d7,d7,d3 24 | VADD.I16 d8,d1,d8 25 | VADD.I16 d0,d5,d8 26 | VADD.I16 d1,d6,d7 27 | VSUB.I16 d2,d6,d7 28 | VSUB.I16 d3,d5,d8 29 | VTRN.16 d0,d1 30 | VTRN.16 d2,d3 31 | VTRN.32 q0,q1 32 | VADD.I16 d5,d0,d2 33 | VSUB.I16 d6,d0,d2 34 | VHADD.S16 d7,d1,d4 35 | VHADD.S16 d8,d3,d4 36 | VSUB.I16 d7,d7,d3 37 | VADD.I16 d8,d1,d8 38 | VADD.I16 d0,d5,d8 39 | VADD.I16 d1,d6,d7 40 | VSUB.I16 d2,d6,d7 41 | VSUB.I16 d3,d5,d8 42 | VRSHR.S16 d0,d0,#6 43 | VRSHR.S16 d1,d1,#6 44 | VRSHR.S16 d2,d2,#6 45 | VRSHR.S16 d3,d3,#6 46 | VST1.16 {d0,d1,d2,d3},[r0] 47 | VPOP {d8} 48 | BX lr 49 | .endfunc 50 | 51 | .end 52 | 53 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_UnpackBlock4x4_s.S: -------------------------------------------------------------------------------- 1 | /* 2 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 3 | * 4 | */ 5 | 6 | .eabi_attribute 24, 1 7 | .eabi_attribute 25, 1 8 | 9 | .arm 10 | .fpu neon 11 | .text 12 | 13 | .global armVCM4P10_UnpackBlock4x4 14 | .func armVCM4P10_UnpackBlock4x4 15 | armVCM4P10_UnpackBlock4x4: 16 | PUSH {r4-r8,lr} 17 | LDR r2,[r0,#0] 18 | MOV r7,#0x1f 19 | MOV r4,#0 20 | MOV r5,#0 21 | LDRB r3,[r2],#1 22 | STRD r4,r5,[r1,#0] 23 | STRD r4,r5,[r1,#8] 24 | STRD r4,r5,[r1,#0x10] 25 | STRD r4,r5,[r1,#0x18] 26 | unpackLoop: 27 | TST r3,#0x10 28 | LDRNESB r5,[r2,#1] 29 | LDRNEB r4,[r2],#2 30 | AND r6,r7,r3,LSL #1 31 | LDREQSB r4,[r2],#1 32 | ORRNE r4,r4,r5,LSL #8 33 | TST r3,#0x20 34 | LDREQB r3,[r2],#1 35 | STRH r4,[r1,r6] 36 | BEQ unpackLoop 37 | STR r2,[r0,#0] 38 | POP {r4-r8,pc} 39 | .endfunc 40 | .end 41 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_DeblockLuma_I.S: -------------------------------------------------------------------------------- 1 | /* 2 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 3 | * 4 | */ 5 | 6 | .eabi_attribute 24, 1 7 | .eabi_attribute 25, 1 8 | 9 | .arm 10 | .fpu neon 11 | .text 12 | 13 | .global omxVCM4P10_DeblockLuma_I 14 | .func omxVCM4P10_DeblockLuma_I 15 | omxVCM4P10_DeblockLuma_I: 16 | PUSH {r4-r9,lr} 17 | MOVS r6,r0 18 | SUB sp,sp,#0xc 19 | MOV r9,r1 20 | MOV r7,r2 21 | MOV r8,r3 22 | LDR r4,[sp,#0x28] 23 | LDR r5,[sp,#0x2c] 24 | BEQ L0x58 25 | TST r6,#7 26 | TSTEQ r9,#7 27 | BNE L0x58 28 | CMP r7,#0 29 | CMPNE r8,#0 30 | CMPNE r4,#0 31 | BEQ L0x58 32 | TST r4,#3 33 | BNE L0x58 34 | CMP r5,#0 35 | BEQ L0x58 36 | TST r5,#3 37 | BEQ L0x64 38 | L0x58: 39 | MVN r0,#4 40 | L0x5c: 41 | ADD sp,sp,#0xc 42 | POP {r4-r9,pc} 43 | L0x64: 44 | STR r4,[sp,#0] 45 | MOV r3,r8 46 | STR r5,[sp,#4] 47 | MOV r2,r7 48 | MOV r1,r9 49 | MOV r0,r6 50 | BL omxVCM4P10_FilterDeblockingLuma_VerEdge_I 51 | CMP r0,#0 52 | BNE L0x5c 53 | ADD r3,r5,#0x10 54 | ADD r2,r4,#0x10 55 | STR r3,[sp,#4] 56 | STR r2,[sp,#0] 57 | ADD r3,r8,#2 58 | ADD r2,r7,#2 59 | MOV r1,r9 60 | MOV r0,r6 61 | BL omxVCM4P10_FilterDeblockingLuma_HorEdge_I 62 | ADD sp,sp,#0xc 63 | POP {r4-r9,pc} 64 | .endfunc 65 | 66 | .end 67 | 68 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantChromaDCFromPair_s.S: -------------------------------------------------------------------------------- 1 | /* 2 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 3 | * 4 | */ 5 | 6 | .eabi_attribute 24, 1 7 | .eabi_attribute 25, 1 8 | 9 | .arm 10 | .fpu neon 11 | .text 12 | 13 | .global omxVCM4P10_TransformDequantChromaDCFromPair 14 | .func omxVCM4P10_TransformDequantChromaDCFromPair 15 | omxVCM4P10_TransformDequantChromaDCFromPair: 16 | push {r4-r10, lr} 17 | ldr r9, [r0,#0] 18 | vmov.i16 d0, #0 19 | mov r8, #0x1f 20 | vst1.16 {d0}, [r1] 21 | ldrb r6, [r9], #1 22 | unpackLoop: 23 | tst r6, #0x10 24 | ldrnesb r5, [r9, #1] 25 | ldrneb r4, [r9], #2 26 | and r7, r8, r6, lsl #1 27 | ldreqsb r4, [r9], #1 28 | orrne r4, r4, r5, lsl #8 29 | tst r6, #0x20 30 | ldreqb r6, [r9], #1 31 | strh r4, [r1, r7] 32 | beq unpackLoop 33 | ldmia r1, {r3, r4} 34 | str r9, [r0, #0] 35 | ldr r5, .LarmVCM4P10_QPDivTable 36 | P0: add r5, pc 37 | ldr r6, .LarmVCM4P10_VMatrixQPModTable 38 | P1: add r6, pc 39 | saddsubx r3, r3, r3 40 | saddsubx r4, r4, r4 41 | ldrsb r9, [r5, r2] 42 | ldrsb r2, [r6, r2] 43 | sadd16 r5, r3, r4 44 | ssub16 r6, r3, r4 45 | lsl r2, r2, r9 46 | vmov d0, r5, r6 47 | vrev32.16 d0, d0 48 | vdup.16 d1, r2 49 | vmull.s16 q1, d0, d1 50 | vshrn.i32 d2, q1, #1 51 | vst1.16 {d2}, [r1] 52 | mov r0, #0 53 | pop {r4-r10, pc} 54 | .endfunc 55 | 56 | .LarmVCM4P10_QPDivTable: 57 | .word armVCM4P10_QPDivTable-(P0+8) 58 | .LarmVCM4P10_VMatrixQPModTable: 59 | .word armVCM4P10_VMatrixQPModTable-(P1+8) 60 | 61 | .end 62 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p2/api/armVCM4P2_Huff_Tables_VLC.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * File Name: armVCM4P2_Huff_Tables_VLC.h 4 | * OpenMAX DL: v1.0.2 5 | * Revision: 12290 6 | * Date: Wednesday, April 9, 2008 7 | * 8 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 9 | * 10 | * 11 | * 12 | * 13 | * File: armVCM4P2_Huff_Tables.h 14 | * Description: Declares Tables used for Hufffman coding and decoding 15 | * in MP4P2 codec. 16 | * 17 | */ 18 | 19 | #ifndef _OMXHUFFTAB_H_ 20 | #define _OMXHUFFTAB_H_ 21 | 22 | 23 | extern const OMX_U16 armVCM4P2_IntraVlcL0L1[200]; 24 | 25 | 26 | extern const OMX_U16 armVCM4P2_InterVlcL0L1[200]; 27 | 28 | extern const OMX_U16 armVCM4P2_aIntraDCLumaChromaIndex[64]; 29 | //extern const OMX_U16 armVCM4P2_aIntraDCChromaIndex[32]; 30 | extern const OMX_U16 armVCM4P2_aVlcMVD[124]; 31 | 32 | extern const OMX_U8 armVCM4P2_InterL0L1LMAX[73]; 33 | extern const OMX_U8 armVCM4P2_InterL0L1RMAX[35]; 34 | extern const OMX_U8 armVCM4P2_IntraL0L1LMAX[53]; 35 | extern const OMX_U8 armVCM4P2_IntraL0L1RMAX[40] 36 | 37 | #endif /* _OMXHUFFTAB_H_ */ 38 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p2/api/armVCM4P2_ZigZag_Tables.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * File Name: armVCM4P2_ZigZag_Tables.h 4 | * OpenMAX DL: v1.0.2 5 | * Revision: 12290 6 | * Date: Wednesday, April 9, 2008 7 | * 8 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 9 | * 10 | * 11 | * 12 | * 13 | * File: armVCM4P2_Zigzag_Tables.h 14 | * Description: Declares Tables used for Zigzag scan in MP4P2 codec. 15 | * 16 | */ 17 | 18 | #ifndef _OMXZIGZAGTAB_H 19 | #define _OMXZIGZAGTAB_H 20 | 21 | extern const OMX_U8 armVCM4P2_aClassicalZigzagScan [192]; 22 | //extern const OMX_U8 armVCM4P2_aHorizontalZigzagScan [64]; 23 | //extern const OMX_U8 armVCM4P2_aVerticalZigzagScan [64]; 24 | 25 | #endif /* _OMXZIGZAGTAB_H_ */ 26 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/src/armVC_Version.c: -------------------------------------------------------------------------------- 1 | #include "omxtypes.h" 2 | #include "armCOMM_Version.h" 3 | 4 | #ifdef ARM_INCLUDE_VERSION_DESCRIPTIONS 5 | const char * const omxVC_VersionDescription = "ARM OpenMAX DL v" ARM_VERSION_STRING " Rel=" OMX_ARM_RELEASE_TAG " Arch=" OMX_ARM_BUILD_ARCHITECTURE " Tools=" OMX_ARM_BUILD_TOOLCHAIN ; 6 | #endif /* ARM_INCLUDE_VERSION_DESCRIPTIONS */ 7 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/api/omxtypes.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/api/omxtypes.h -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/api/armVC.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/api/armVC.h -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/api/omxVC.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/api/omxVC.h -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/m4p10/api/armVCM4P10_CAVLCTables.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------- 2 | * 3 | * 4 | * File Name: armVCM4P10_CAVLCTables.h 5 | * OpenMAX DL: v1.0.2 6 | * Revision: 9641 7 | * Date: Thursday, February 7, 2008 8 | * 9 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 10 | * 11 | * 12 | * 13 | * ---------------------------------------------------------------- 14 | * File: armVCM4P10_CAVLCTables.h 15 | * ---------------------------------------------------------------- 16 | * 17 | * Header file for ARM implementation of OpenMAX VCM4P10 18 | * 19 | */ 20 | 21 | #ifndef ARMVCM4P10_CAVLCTABLES_H 22 | #define ARMVCM4P10_CAVLCTABLES_H 23 | 24 | /* CAVLC tables */ 25 | 26 | extern const OMX_U8 armVCM4P10_CAVLCTrailingOnes[62]; 27 | extern const OMX_U8 armVCM4P10_CAVLCTotalCoeff[62]; 28 | extern const ARM_VLC32 *armVCM4P10_CAVLCCoeffTokenTables[5]; 29 | extern const ARM_VLC32 armVCM4P10_CAVLCLevelPrefix[17]; 30 | extern const ARM_VLC32 *armVCM4P10_CAVLCTotalZeroTables[15]; 31 | extern const ARM_VLC32 *armVCM4P10_CAVLCTotalZeros2x2Tables[3]; 32 | extern const ARM_VLC32 *armVCM4P10_CAVLCRunBeforeTables[7]; 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/m4p10/src/armVCM4P10_DequantTables.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------- 2 | * 3 | * 4 | * File Name: armVCM4P10_DequantTables.c 5 | * OpenMAX DL: v1.0.2 6 | * Revision: 9641 7 | * Date: Thursday, February 7, 2008 8 | * 9 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 10 | * 11 | * 12 | * 13 | * H.264 inverse quantize tables 14 | * 15 | */ 16 | 17 | #include "omxtypes.h" 18 | #include "armOMX.h" 19 | #include "omxVC.h" 20 | #include "armVC.h" 21 | 22 | 23 | const OMX_U8 armVCM4P10_PosToVCol4x4[16] = 24 | { 25 | 0, 2, 0, 2, 26 | 2, 1, 2, 1, 27 | 0, 2, 0, 2, 28 | 2, 1, 2, 1 29 | }; 30 | 31 | const OMX_U8 armVCM4P10_PosToVCol2x2[4] = 32 | { 33 | 0, 2, 34 | 2, 1 35 | }; 36 | 37 | const OMX_U8 armVCM4P10_VMatrix[6][3] = 38 | { 39 | { 10, 16, 13 }, 40 | { 11, 18, 14 }, 41 | { 13, 20, 16 }, 42 | { 14, 23, 18 }, 43 | { 16, 25, 20 }, 44 | { 18, 29, 23 } 45 | }; 46 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/m4p10/src/armVCM4P10_QuantTables.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------- 2 | * 3 | * 4 | * File Name: armVCM4P10_QuantTables.c 5 | * OpenMAX DL: v1.0.2 6 | * Revision: 9641 7 | * Date: Thursday, February 7, 2008 8 | * 9 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 10 | * 11 | * 12 | * 13 | * H.264 inverse quantize tables 14 | * 15 | */ 16 | 17 | #include "omxtypes.h" 18 | #include "armOMX.h" 19 | #include "omxVC.h" 20 | 21 | #include "armVC.h" 22 | 23 | const OMX_U32 armVCM4P10_MFMatrix[6][3] = 24 | { 25 | {13107, 5243, 8066}, 26 | {11916, 4660, 7490}, 27 | {10082, 4194, 6554}, 28 | { 9362, 3647, 5825}, 29 | { 8192, 3355, 5243}, 30 | { 7282, 2893, 4559} 31 | }; 32 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/m4p2/api/armVCM4P2_DCT_Table.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * File Name: armVCM4P2_DCT_Table.h 4 | * OpenMAX DL: v1.0.2 5 | * Revision: 9641 6 | * Date: Thursday, February 7, 2008 7 | * 8 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 9 | * 10 | * 11 | * 12 | * 13 | * File: armVCM4P2_DCT_Table.h 14 | * Description: Declares Tables used for DCT/IDCT module 15 | * in MP4P2 codec. 16 | * 17 | */ 18 | 19 | #ifndef _OMXDCTTAB_H_ 20 | #define _OMXDCTTAB_H_ 21 | 22 | extern const OMX_F64 armVCM4P2_preCalcDCTCos[8][8]; 23 | 24 | #endif /* _OMXDCTTAB_H_ */ 25 | 26 | 27 | /* End of file */ 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/m4p2/api/armVCM4P2_Huff_Tables_VLC.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * File Name: armVCM4P2_Huff_Tables_VLC.h 4 | * OpenMAX DL: v1.0.2 5 | * Revision: 9641 6 | * Date: Thursday, February 7, 2008 7 | * 8 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 9 | * 10 | * 11 | * 12 | * 13 | * File: armVCM4P2_Huff_Tables.h 14 | * Description: Declares Tables used for Hufffman coding and decoding 15 | * in MP4P2 codec. 16 | * 17 | */ 18 | 19 | #ifndef _OMXHUFFTAB_H_ 20 | #define _OMXHUFFTAB_H_ 21 | 22 | extern const OMX_U8 armVCM4P2_IntraL0RunIdx[11]; 23 | extern const ARM_VLC32 armVCM4P2_IntraVlcL0[68]; 24 | extern const OMX_U8 armVCM4P2_IntraL1RunIdx[7]; 25 | extern const ARM_VLC32 armVCM4P2_IntraVlcL1[36]; 26 | extern const OMX_U8 armVCM4P2_IntraL0LMAX[15]; 27 | extern const OMX_U8 armVCM4P2_IntraL1LMAX[21]; 28 | extern const OMX_U8 armVCM4P2_IntraL0RMAX[27]; 29 | extern const OMX_U8 armVCM4P2_IntraL1RMAX[8]; 30 | extern const OMX_U8 armVCM4P2_InterL0RunIdx[12]; 31 | extern const ARM_VLC32 armVCM4P2_InterVlcL0[59]; 32 | extern const OMX_U8 armVCM4P2_InterL1RunIdx[3]; 33 | extern const ARM_VLC32 armVCM4P2_InterVlcL1[45]; 34 | extern const OMX_U8 armVCM4P2_InterL0LMAX[27]; 35 | extern const OMX_U8 armVCM4P2_InterL1LMAX[41]; 36 | extern const OMX_U8 armVCM4P2_InterL0RMAX[12]; 37 | extern const OMX_U8 armVCM4P2_InterL1RMAX[3]; 38 | extern const ARM_VLC32 armVCM4P2_aIntraDCLumaIndex[14]; 39 | extern const ARM_VLC32 armVCM4P2_aIntraDCChromaIndex[14]; 40 | extern const ARM_VLC32 armVCM4P2_aVlcMVD[66]; 41 | 42 | #endif /* _OMXHUFFTAB_H_ */ 43 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/m4p2/api/armVCM4P2_ZigZag_Tables.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * File Name: armVCM4P2_ZigZag_Tables.h 4 | * OpenMAX DL: v1.0.2 5 | * Revision: 9641 6 | * Date: Thursday, February 7, 2008 7 | * 8 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 9 | * 10 | * 11 | * 12 | * 13 | * File: armVCM4P2_Zigzag_Tables.h 14 | * Description: Declares Tables used for Zigzag scan in MP4P2 codec. 15 | * 16 | */ 17 | 18 | #ifndef _OMXZIGZAGTAB_H_ 19 | #define _OMXZIGZAGTAB_H_ 20 | 21 | extern const OMX_U8 armVCM4P2_aClassicalZigzagScan [64]; 22 | extern const OMX_U8 armVCM4P2_aHorizontalZigzagScan [64]; 23 | extern const OMX_U8 armVCM4P2_aVerticalZigzagScan [64]; 24 | 25 | #endif /* _OMXZIGZAGTAB_H_ */ 26 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/m4p2/src/armVCM4P2_BlockMatch_Half.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/m4p2/src/armVCM4P2_BlockMatch_Half.c -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/m4p2/src/armVCM4P2_BlockMatch_Integer.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/m4p2/src/armVCM4P2_BlockMatch_Integer.c -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/m4p2/src/armVCM4P2_Zigzag_Tables.c: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * File Name: armVCM4P2_Zigzag_Tables.c 4 | * OpenMAX DL: v1.0.2 5 | * Revision: 9641 6 | * Date: Thursday, February 7, 2008 7 | * 8 | * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 9 | * 10 | * 11 | * 12 | * File: armVCM4P2_ZigZag_Tables.c 13 | * Description: Contains the zigzag tables 14 | * 15 | */ 16 | 17 | #include "omxtypes.h" 18 | 19 | const OMX_U8 armVCM4P2_aClassicalZigzagScan [64] = 20 | { 21 | 0, 1, 8, 16, 9, 2, 3, 10, 22 | 17, 24, 32, 25, 18, 11, 4, 5, 23 | 12, 19, 26, 33, 40, 48, 41, 34, 24 | 27, 20, 13, 6, 7, 14, 21, 28, 25 | 35, 42, 49, 56, 57, 50, 43, 36, 26 | 29, 22, 15, 23, 30, 37, 44, 51, 27 | 58, 59, 52, 45, 38, 31, 39, 46, 28 | 53, 60, 61, 54, 47, 55, 62, 63 29 | }; 30 | 31 | const OMX_U8 armVCM4P2_aHorizontalZigzagScan [64] = 32 | { 33 | 0, 1, 2, 3, 8, 9, 16, 17, 34 | 10, 11, 4, 5, 6, 7, 15, 14, 35 | 13, 12, 19, 18, 24, 25, 32, 33, 36 | 26, 27, 20, 21, 22, 23, 28, 29, 37 | 30, 31, 34, 35, 40, 41, 48, 49, 38 | 42, 43, 36, 37, 38, 39, 44, 45, 39 | 46, 47, 50, 51, 56, 57, 58, 59, 40 | 52, 53, 54, 55, 60, 61, 62, 63 41 | }; 42 | 43 | const OMX_U8 armVCM4P2_aVerticalZigzagScan [64] = 44 | { 45 | 0, 8, 16, 24, 1, 9, 2, 10, 46 | 17, 25, 32, 40, 48, 56, 57, 49, 47 | 41, 33, 26, 18, 3, 11, 4, 12, 48 | 19, 27, 34, 42, 50, 58, 35, 43, 49 | 51, 59, 20, 28, 5, 13, 6, 14, 50 | 21, 29, 36, 44, 52, 60, 37, 45, 51 | 53, 61, 22, 30, 7, 15, 23, 31, 52 | 38, 46, 54, 62, 39, 47, 55, 63 53 | }; 54 | 55 | 56 | /* End of file */ 57 | 58 | 59 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/omxdl/reference/vc/src/armVC_Version.c: -------------------------------------------------------------------------------- 1 | #include "omxtypes.h" 2 | #include "armCOMM_Version.h" 3 | 4 | #ifdef ARM_INCLUDE_VERSION_DESCRIPTIONS 5 | const char * const omxVC_VersionDescription = "ARM OpenMAX DL v" ARM_VERSION_STRING " Rel=" OMX_ARM_RELEASE_TAG " Arch=" OMX_ARM_BUILD_ARCHITECTURE " Tools=" OMX_ARM_BUILD_TOOLCHAIN ; 6 | #endif /* ARM_INCLUDE_VERSION_DESCRIPTIONS */ 7 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/source/arm11_asm/win_asm.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | set ASMFLAGS= -checkreglist -CPU ARM1136 -PreDefine "H264DEC_WINASM SETL {TRUE}" 3 | set ASM="D:\Program Files\Microsoft Visual Studio 8\VC\ce\bin\x86_arm\armasm" 4 | echo on 5 | 6 | %ASM% %ASMFLAGS% h264bsd_interpolate_chroma_ver.s 7 | %ASM% %ASMFLAGS% h264bsd_interpolate_chroma_hor.s 8 | %ASM% %ASMFLAGS% h264bsd_interpolate_hor_half.s 9 | %ASM% %ASMFLAGS% h264bsd_interpolate_hor_quarter.s 10 | %ASM% %ASMFLAGS% h264bsd_interpolate_hor_ver_quarter.s 11 | %ASM% %ASMFLAGS% h264bsd_interpolate_ver_half.s 12 | %ASM% %ASMFLAGS% h264bsd_interpolate_ver_quarter.s 13 | 14 | rem %ASM% %ASMFLAGS% h264bsd_interpolate_chroma_hor_ver.s 15 | rem %ASM% %ASMFLAGS% h264bsd_interpolate_mid_hor.s 16 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/source/arm_neon_asm/h264bsdCountLeadingZeros.s: -------------------------------------------------------------------------------- 1 | ; 2 | ; Copyright (C) 2009 The Android Open Source Project 3 | ; 4 | ; Licensed under the Apache License, Version 2.0 (the "License"); 5 | ; you may not use this file except in compliance with the License. 6 | ; You may obtain a copy of the License at 7 | ; 8 | ; http://www.apache.org/licenses/LICENSE-2.0 9 | ; 10 | ; Unless required by applicable law or agreed to in writing, software 11 | ; distributed under the License is distributed on an "AS IS" BASIS, 12 | ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ; See the License for the specific language governing permissions and 14 | ; limitations under the License. 15 | ; 16 | 17 | REQUIRE8 18 | PRESERVE8 19 | 20 | AREA |.text|, CODE 21 | 22 | EXPORT h264bsdCountLeadingZeros 23 | 24 | ; Input / output registers 25 | value RN 0 26 | 27 | ; -- NEON registers -- 28 | 29 | ;/*------------------------------------------------------------------------------ 30 | ; 31 | ; Function: h264bsdCountLeadingZeros 32 | ; 33 | ; Functional description: 34 | ; 35 | ; Inputs: 36 | ; 37 | ; Outputs: 38 | ; 39 | ; Returns: 40 | ; 41 | ;------------------------------------------------------------------------------*/ 42 | 43 | h264bsdCountLeadingZeros 44 | 45 | CLZ value, value 46 | BX lr 47 | END 48 | 49 | 50 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/source/arm_neon_asm_gcc/asm_common.S: -------------------------------------------------------------------------------- 1 | @ 2 | @ Copyright (C) 2009 The Android Open Source Project 3 | @ 4 | @ Licensed under the Apache License, Version 2.0 (the "License"); 5 | @ you may not use this file except in compliance with the License. 6 | @ You may obtain a copy of the License at 7 | @ 8 | @ http://www.apache.org/licenses/LICENSE-2.0 9 | @ 10 | @ Unless required by applicable law or agreed to in writing, software 11 | @ distributed under the License is distributed on an "AS IS" BASIS, 12 | @ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @ See the License for the specific language governing permissions and 14 | @ limitations under the License. 15 | @ 16 | 17 | 18 | 19 | 20 | .macro REQUIRE8 21 | .eabi_attribute 24, 1 22 | .endm 23 | 24 | .macro PRESERVE8 25 | .eabi_attribute 25, 1 26 | .endm 27 | 28 | 29 | .macro function name, export=0 30 | .if \export 31 | .global \name 32 | .endif 33 | .type \name, %function 34 | .func \name 35 | \name: 36 | .endm 37 | 38 | .macro endfunction 39 | .endfunc 40 | .endm 41 | 42 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/source/arm_neon_asm_gcc/h264bsdCountLeadingZeros.S: -------------------------------------------------------------------------------- 1 | @ 2 | @ Copyright (C) 2009 The Android Open Source Project 3 | @ 4 | @ Licensed under the Apache License, Version 2.0 (the "License"); 5 | @ you may not use this file except in compliance with the License. 6 | @ You may obtain a copy of the License at 7 | @ 8 | @ http://www.apache.org/licenses/LICENSE-2.0 9 | @ 10 | @ Unless required by applicable law or agreed to in writing, software 11 | @ distributed under the License is distributed on an "AS IS" BASIS, 12 | @ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @ See the License for the specific language governing permissions and 14 | @ limitations under the License. 15 | @ 16 | #include "asm_common.S" 17 | 18 | preserve8 19 | .arm 20 | .text 21 | 22 | 23 | /* Input / output registers */ 24 | #define value r0 25 | 26 | /* -- NEON registers -- */ 27 | 28 | /*------------------------------------------------------------------------------ 29 | 30 | Function: h264bsdCountLeadingZeros 31 | 32 | Functional description: 33 | 34 | Inputs: 35 | 36 | Outputs: 37 | 38 | Returns: 39 | 40 | ------------------------------------------------------------------------------*/ 41 | 42 | function h264bsdCountLeadingZeros, export=1 43 | 44 | CLZ value, value 45 | BX lr 46 | 47 | endfunction 48 | 49 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/on2/h264dec/source/h264bsd_nal_unit.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/on2/h264dec/source/h264bsd_nal_unit.c -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/raw/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES := \ 5 | SoftRaw.cpp 6 | 7 | LOCAL_C_INCLUDES := \ 8 | frameworks/av/media/libstagefright/include \ 9 | frameworks/native/include/media/openmax 10 | 11 | LOCAL_SHARED_LIBRARIES := \ 12 | libstagefright_omx libstagefright_foundation libutils 13 | 14 | LOCAL_MODULE := libstagefright_soft_rawdec 15 | LOCAL_MODULE_TAGS := optional 16 | 17 | include $(BUILD_SHARED_LIBRARY) 18 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/raw/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/raw/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/vorbis/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | include $(call all-makefiles-under,$(LOCAL_PATH)) 5 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/vorbis/dec/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES := \ 5 | SoftVorbis.cpp 6 | 7 | LOCAL_C_INCLUDES := \ 8 | external/tremolo \ 9 | frameworks/av/media/libstagefright/include \ 10 | frameworks/native/include/media/openmax \ 11 | 12 | LOCAL_SHARED_LIBRARIES := \ 13 | libvorbisidec libstagefright libstagefright_omx \ 14 | libstagefright_foundation libutils 15 | 16 | LOCAL_MODULE := libstagefright_soft_vorbisdec 17 | LOCAL_MODULE_TAGS := optional 18 | 19 | include $(BUILD_SHARED_LIBRARY) 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/codecs/vorbis/dec/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/codecs/vorbis/dec/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/colorconversion/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES:= \ 5 | ColorConverter.cpp \ 6 | SoftwareRenderer.cpp 7 | 8 | LOCAL_C_INCLUDES := \ 9 | $(TOP)/frameworks/native/include/media/openmax \ 10 | $(TOP)/hardware/msm7k 11 | 12 | LOCAL_MODULE:= libstagefright_color_conversion 13 | 14 | include $(BUILD_STATIC_LIBRARY) 15 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/colorconversion/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/colorconversion/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/foundation/AHandler.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | //#define LOG_NDEBUG 0 18 | #define LOG_TAG "AHandler" 19 | #include 20 | 21 | #include 22 | 23 | #include 24 | 25 | namespace android { 26 | 27 | sp AHandler::looper() { 28 | extern ALooperRoster gLooperRoster; 29 | 30 | return gLooperRoster.findLooper(id()); 31 | } 32 | 33 | } // namespace android 34 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/foundation/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES:= \ 5 | AAtomizer.cpp \ 6 | ABitReader.cpp \ 7 | ABuffer.cpp \ 8 | AHandler.cpp \ 9 | AHierarchicalStateMachine.cpp \ 10 | ALooper.cpp \ 11 | ALooperRoster.cpp \ 12 | AMessage.cpp \ 13 | AString.cpp \ 14 | base64.cpp \ 15 | hexdump.cpp 16 | 17 | LOCAL_C_INCLUDES:= \ 18 | frameworks/av/include/media/stagefright/foundation 19 | 20 | LOCAL_SHARED_LIBRARIES := \ 21 | libbinder \ 22 | libutils \ 23 | 24 | LOCAL_CFLAGS += -Wno-multichar 25 | 26 | LOCAL_MODULE:= libstagefright_foundation 27 | 28 | 29 | 30 | include $(BUILD_SHARED_LIBRARY) 31 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/foundation/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/foundation/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/httplive/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | 5 | LOCAL_SRC_FILES:= \ 6 | LiveDataSource.cpp \ 7 | LiveSession.cpp \ 8 | M3UParser.cpp \ 9 | 10 | LOCAL_C_INCLUDES:= \ 11 | $(TOP)/frameworks/av/media/libstagefright \ 12 | $(TOP)/frameworks/native/include/media/openmax \ 13 | $(TOP)/external/openssl/include 14 | 15 | LOCAL_MODULE:= libstagefright_httplive 16 | 17 | ifeq ($(TARGET_ARCH),arm) 18 | LOCAL_CFLAGS += -Wno-psabi 19 | endif 20 | 21 | include $(BUILD_STATIC_LIBRARY) 22 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/httplive/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/httplive/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/id3/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES := \ 5 | ID3.cpp 6 | 7 | LOCAL_MODULE := libstagefright_id3 8 | 9 | include $(BUILD_STATIC_LIBRARY) 10 | 11 | ################################################################################ 12 | 13 | include $(CLEAR_VARS) 14 | 15 | LOCAL_SRC_FILES := \ 16 | testid3.cpp 17 | 18 | LOCAL_SHARED_LIBRARIES := \ 19 | libstagefright libutils libbinder libstagefright_foundation 20 | 21 | LOCAL_STATIC_LIBRARIES := \ 22 | libstagefright_id3 23 | 24 | LOCAL_MODULE_TAGS := debug 25 | 26 | LOCAL_MODULE := testid3 27 | 28 | include $(BUILD_EXECUTABLE) 29 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/id3/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/id3/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/include/MP3Seeker.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef MP3_SEEKER_H_ 18 | 19 | #define MP3_SEEKER_H_ 20 | 21 | #include 22 | #include 23 | 24 | namespace android { 25 | 26 | struct MP3Seeker : public RefBase { 27 | MP3Seeker() {} 28 | 29 | virtual bool getDuration(int64_t *durationUs) = 0; 30 | 31 | // Given a request seek time in "*timeUs", find the byte offset closest 32 | // to that position and return it in "*pos". Update "*timeUs" to reflect 33 | // the actual time that seekpoint represents. 34 | virtual bool getOffsetForTime(int64_t *timeUs, off64_t *pos) = 0; 35 | 36 | protected: 37 | virtual ~MP3Seeker() {} 38 | 39 | private: 40 | DISALLOW_EVIL_CONSTRUCTORS(MP3Seeker); 41 | }; 42 | 43 | } // namespace android 44 | 45 | #endif // MP3_SEEKER_H_ 46 | 47 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/include/ThrottledSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef THROTTLED_SOURCE_H_ 18 | 19 | #define THROTTLED_SOURCE_H_ 20 | 21 | #include 22 | #include 23 | 24 | namespace android { 25 | 26 | struct ThrottledSource : public DataSource { 27 | ThrottledSource( 28 | const sp &source, 29 | int32_t bandwidthLimitBytesPerSecond); 30 | 31 | virtual status_t initCheck() const; 32 | 33 | virtual ssize_t readAt(off64_t offset, void *data, size_t size); 34 | 35 | virtual status_t getSize(off64_t *size); 36 | virtual uint32_t flags(); 37 | 38 | virtual String8 getMIMEType() const { 39 | return mSource->getMIMEType(); 40 | } 41 | 42 | 43 | private: 44 | Mutex mLock; 45 | 46 | sp mSource; 47 | int32_t mBandwidthLimitBytesPerSecond; 48 | int64_t mStartTimeUs; 49 | size_t mTotalTransferred; 50 | 51 | ThrottledSource(const ThrottledSource &); 52 | ThrottledSource &operator=(const ThrottledSource &); 53 | }; 54 | 55 | } // namespace android 56 | 57 | #endif // THROTTLED_SOURCE_H_ 58 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/include/VBRISeeker.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef VBRI_SEEKER_H_ 18 | 19 | #define VBRI_SEEKER_H_ 20 | 21 | #include "include/MP3Seeker.h" 22 | 23 | #include 24 | 25 | namespace android { 26 | 27 | struct DataSource; 28 | 29 | struct VBRISeeker : public MP3Seeker { 30 | static sp CreateFromSource( 31 | const sp &source, off64_t post_id3_pos); 32 | 33 | virtual bool getDuration(int64_t *durationUs); 34 | virtual bool getOffsetForTime(int64_t *timeUs, off64_t *pos); 35 | 36 | private: 37 | off64_t mBasePos; 38 | int64_t mDurationUs; 39 | Vector mSegments; 40 | 41 | VBRISeeker(); 42 | 43 | DISALLOW_EVIL_CONSTRUCTORS(VBRISeeker); 44 | }; 45 | 46 | } // namespace android 47 | 48 | #endif // VBRI_SEEKER_H_ 49 | 50 | 51 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/include/XINGSeeker.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef XING_SEEKER_H_ 18 | 19 | #define XING_SEEKER_H_ 20 | 21 | #include "include/MP3Seeker.h" 22 | 23 | namespace android { 24 | 25 | struct DataSource; 26 | 27 | struct XINGSeeker : public MP3Seeker { 28 | static sp CreateFromSource( 29 | const sp &source, off64_t first_frame_pos); 30 | 31 | virtual bool getDuration(int64_t *durationUs); 32 | virtual bool getOffsetForTime(int64_t *timeUs, off64_t *pos); 33 | 34 | virtual int32_t getEncoderDelay(); 35 | virtual int32_t getEncoderPadding(); 36 | 37 | private: 38 | int64_t mFirstFramePos; 39 | int64_t mDurationUs; 40 | int32_t mSizeBytes; 41 | int32_t mEncoderDelay; 42 | int32_t mEncoderPadding; 43 | 44 | // TOC entries in XING header. Skip the first one since it's always 0. 45 | unsigned char mTOC[99]; 46 | bool mTOCValid; 47 | 48 | XINGSeeker(); 49 | 50 | DISALLOW_EVIL_CONSTRUCTORS(XINGSeeker); 51 | }; 52 | 53 | } // namespace android 54 | 55 | #endif // XING_SEEKER_H_ 56 | 57 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/include/chromium_http_stub.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef CHROMIUM_HTTP_STUB_H_ 18 | #define CHROMIUM_HTTP_STUB_H_ 19 | 20 | #include 21 | #include 22 | 23 | namespace android { 24 | extern "C" { 25 | HTTPBase *createChromiumHTTPDataSource(uint32_t flags); 26 | DataSource *createDataUriSource(const char *uri); 27 | } 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/matroska/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES:= \ 5 | MatroskaExtractor.cpp 6 | 7 | LOCAL_C_INCLUDES:= \ 8 | $(TOP)/external/libvpx/mkvparser \ 9 | $(TOP)/frameworks/native/include/media/openmax \ 10 | 11 | LOCAL_CFLAGS += -Wno-multichar 12 | 13 | LOCAL_MODULE:= libstagefright_matroska 14 | 15 | include $(BUILD_STATIC_LIBRARY) 16 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/matroska/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/matroska/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/mpeg2ts/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | 5 | LOCAL_SRC_FILES:= \ 6 | AnotherPacketSource.cpp \ 7 | ATSParser.cpp \ 8 | ESQueue.cpp \ 9 | MPEG2PSExtractor.cpp \ 10 | MPEG2TSExtractor.cpp \ 11 | 12 | LOCAL_C_INCLUDES:= \ 13 | $(TOP)/frameworks/av/media/libstagefright \ 14 | $(TOP)/frameworks/native/include/media/openmax 15 | 16 | LOCAL_MODULE:= libstagefright_mpeg2ts 17 | 18 | ifeq ($(TARGET_ARCH),arm) 19 | LOCAL_CFLAGS += -Wno-psabi 20 | endif 21 | 22 | include $(BUILD_STATIC_LIBRARY) 23 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/mpeg2ts/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/mpeg2ts/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/omx/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES:= \ 5 | OMX.cpp \ 6 | OMXMaster.cpp \ 7 | OMXNodeInstance.cpp \ 8 | SimpleSoftOMXComponent.cpp \ 9 | SoftOMXComponent.cpp \ 10 | SoftOMXPlugin.cpp \ 11 | 12 | LOCAL_C_INCLUDES += \ 13 | $(TOP)/frameworks/av/media/libstagefright \ 14 | $(TOP)/frameworks/native/include/media/hardware \ 15 | $(TOP)/frameworks/native/include/media/openmax 16 | 17 | LOCAL_SHARED_LIBRARIES := \ 18 | libbinder \ 19 | libmedia \ 20 | libutils \ 21 | libui \ 22 | libcutils \ 23 | libstagefright_foundation \ 24 | libdl 25 | 26 | LOCAL_MODULE:= libstagefright_omx 27 | 28 | include $(BUILD_SHARED_LIBRARY) 29 | 30 | ################################################################################ 31 | 32 | include $(call all-makefiles-under,$(LOCAL_PATH)) 33 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/omx/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/omx/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/omx/SoftOMXPlugin.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef SOFT_OMX_PLUGIN_H_ 18 | 19 | #define SOFT_OMX_PLUGIN_H_ 20 | 21 | #include 22 | #include 23 | 24 | namespace android { 25 | 26 | struct SoftOMXPlugin : public OMXPluginBase { 27 | SoftOMXPlugin(); 28 | 29 | virtual OMX_ERRORTYPE makeComponentInstance( 30 | const char *name, 31 | const OMX_CALLBACKTYPE *callbacks, 32 | OMX_PTR appData, 33 | OMX_COMPONENTTYPE **component); 34 | 35 | virtual OMX_ERRORTYPE destroyComponentInstance( 36 | OMX_COMPONENTTYPE *component); 37 | 38 | virtual OMX_ERRORTYPE enumerateComponents( 39 | OMX_STRING name, 40 | size_t size, 41 | OMX_U32 index); 42 | 43 | virtual OMX_ERRORTYPE getRolesOfComponent( 44 | const char *name, 45 | Vector *roles); 46 | 47 | private: 48 | DISALLOW_EVIL_CONSTRUCTORS(SoftOMXPlugin); 49 | }; 50 | 51 | } // namespace android 52 | 53 | #endif // SOFT_OMX_PLUGIN_H_ 54 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/omx/tests/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES = \ 5 | OMXHarness.cpp \ 6 | 7 | LOCAL_SHARED_LIBRARIES := \ 8 | libstagefright libbinder libmedia libutils libstagefright_foundation 9 | 10 | LOCAL_C_INCLUDES := \ 11 | $(TOP)/frameworks/av/media/libstagefright \ 12 | $(TOP)/frameworks/native/include/media/openmax 13 | 14 | LOCAL_MODULE := omx_tests 15 | 16 | LOCAL_MODULE_TAGS := tests 17 | 18 | include $(BUILD_EXECUTABLE) 19 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/omx/tests/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/omx/tests/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/rtsp/AAMRAssembler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef A_AMR_ASSEMBLER_H_ 18 | 19 | #define A_AMR_ASSEMBLER_H_ 20 | 21 | #include "ARTPAssembler.h" 22 | 23 | #include 24 | 25 | #include 26 | 27 | namespace android { 28 | 29 | struct AMessage; 30 | struct AString; 31 | 32 | struct AAMRAssembler : public ARTPAssembler { 33 | AAMRAssembler( 34 | const sp ¬ify, bool isWide, 35 | const AString ¶ms); 36 | 37 | protected: 38 | virtual ~AAMRAssembler(); 39 | 40 | virtual AssemblyStatus assembleMore(const sp &source); 41 | virtual void onByeReceived(); 42 | virtual void packetLost(); 43 | 44 | private: 45 | bool mIsWide; 46 | 47 | sp mNotifyMsg; 48 | bool mNextExpectedSeqNoValid; 49 | uint32_t mNextExpectedSeqNo; 50 | 51 | AssemblyStatus addPacket(const sp &source); 52 | 53 | DISALLOW_EVIL_CONSTRUCTORS(AAMRAssembler); 54 | }; 55 | 56 | } // namespace android 57 | 58 | #endif // A_AMR_ASSEMBLER_H_ 59 | 60 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/rtsp/AH263Assembler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef A_H263_ASSEMBLER_H_ 18 | 19 | #define A_H263_ASSEMBLER_H_ 20 | 21 | #include "ARTPAssembler.h" 22 | 23 | #include 24 | 25 | #include 26 | 27 | namespace android { 28 | 29 | struct AMessage; 30 | 31 | struct AH263Assembler : public ARTPAssembler { 32 | AH263Assembler(const sp ¬ify); 33 | 34 | protected: 35 | virtual ~AH263Assembler(); 36 | 37 | virtual AssemblyStatus assembleMore(const sp &source); 38 | virtual void onByeReceived(); 39 | virtual void packetLost(); 40 | 41 | private: 42 | sp mNotifyMsg; 43 | uint32_t mAccessUnitRTPTime; 44 | bool mNextExpectedSeqNoValid; 45 | uint32_t mNextExpectedSeqNo; 46 | bool mAccessUnitDamaged; 47 | List > mPackets; 48 | 49 | AssemblyStatus addPacket(const sp &source); 50 | void submitAccessUnit(); 51 | 52 | DISALLOW_EVIL_CONSTRUCTORS(AH263Assembler); 53 | }; 54 | 55 | } // namespace android 56 | 57 | #endif // A_H263_ASSEMBLER_H_ 58 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/rtsp/AMPEG2TSAssembler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef A_MPEG2_TS_ASSEMBLER_H_ 18 | 19 | #define A_MPEG2_TS_ASSEMBLER_H_ 20 | 21 | #include "ARTPAssembler.h" 22 | 23 | namespace android { 24 | 25 | struct AMessage; 26 | struct AString; 27 | struct MetaData; 28 | 29 | struct AMPEG2TSAssembler : public ARTPAssembler { 30 | AMPEG2TSAssembler( 31 | const sp ¬ify, 32 | const char *desc, const AString ¶ms); 33 | 34 | protected: 35 | virtual ~AMPEG2TSAssembler(); 36 | 37 | virtual AssemblyStatus assembleMore(const sp &source); 38 | virtual void onByeReceived(); 39 | virtual void packetLost(); 40 | 41 | private: 42 | sp mNotifyMsg; 43 | bool mNextExpectedSeqNoValid; 44 | uint32_t mNextExpectedSeqNo; 45 | 46 | AssemblyStatus addPacket(const sp &source); 47 | 48 | DISALLOW_EVIL_CONSTRUCTORS(AMPEG2TSAssembler); 49 | }; 50 | 51 | } // namespace android 52 | 53 | #endif // A_MPEG2_TS_ASSEMBLER_H_ 54 | 55 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/rtsp/APacketSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef A_PACKET_SOURCE_H_ 18 | 19 | #define A_PACKET_SOURCE_H_ 20 | 21 | #include 22 | #include 23 | #include 24 | 25 | namespace android { 26 | 27 | struct ASessionDescription; 28 | 29 | struct APacketSource : public RefBase { 30 | APacketSource(const sp &sessionDesc, size_t index); 31 | 32 | status_t initCheck() const; 33 | 34 | virtual sp getFormat(); 35 | 36 | protected: 37 | virtual ~APacketSource(); 38 | 39 | private: 40 | status_t mInitCheck; 41 | 42 | sp mFormat; 43 | 44 | DISALLOW_EVIL_CONSTRUCTORS(APacketSource); 45 | }; 46 | 47 | 48 | } // namespace android 49 | 50 | #endif // A_PACKET_SOURCE_H_ 51 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/rtsp/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | 5 | LOCAL_SRC_FILES:= \ 6 | AAMRAssembler.cpp \ 7 | AAVCAssembler.cpp \ 8 | AH263Assembler.cpp \ 9 | AMPEG2TSAssembler.cpp \ 10 | AMPEG4AudioAssembler.cpp \ 11 | AMPEG4ElementaryAssembler.cpp \ 12 | APacketSource.cpp \ 13 | ARawAudioAssembler.cpp \ 14 | ARTPAssembler.cpp \ 15 | ARTPConnection.cpp \ 16 | ARTPSource.cpp \ 17 | ARTPWriter.cpp \ 18 | ARTSPConnection.cpp \ 19 | ASessionDescription.cpp \ 20 | 21 | LOCAL_C_INCLUDES:= \ 22 | $(TOP)/frameworks/av/media/libstagefright/include \ 23 | $(TOP)/frameworks/native/include/media/openmax \ 24 | $(TOP)/external/openssl/include 25 | 26 | LOCAL_MODULE:= libstagefright_rtsp 27 | 28 | ifeq ($(TARGET_ARCH),arm) 29 | LOCAL_CFLAGS += -Wno-psabi 30 | endif 31 | 32 | include $(BUILD_STATIC_LIBRARY) 33 | 34 | ################################################################################ 35 | 36 | include $(CLEAR_VARS) 37 | 38 | LOCAL_SRC_FILES:= \ 39 | rtp_test.cpp 40 | 41 | LOCAL_SHARED_LIBRARIES := \ 42 | libstagefright liblog libutils libbinder libstagefright_foundation 43 | 44 | LOCAL_STATIC_LIBRARIES := \ 45 | libstagefright_rtsp 46 | 47 | LOCAL_C_INCLUDES:= \ 48 | frameworks/av/media/libstagefright \ 49 | $(TOP)/frameworks/native/include/media/openmax 50 | 51 | LOCAL_CFLAGS += -Wno-multichar 52 | 53 | LOCAL_MODULE_TAGS := debug 54 | 55 | LOCAL_MODULE:= rtp_test 56 | 57 | # include $(BUILD_EXECUTABLE) 58 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/rtsp/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/rtsp/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/rtsp/UDPPusher.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef UDP_PUSHER_H_ 18 | 19 | #define UDP_PUSHER_H_ 20 | 21 | #include 22 | 23 | #include 24 | #include 25 | 26 | namespace android { 27 | 28 | struct UDPPusher : public AHandler { 29 | UDPPusher(const char *filename, unsigned port); 30 | 31 | void start(); 32 | 33 | protected: 34 | virtual ~UDPPusher(); 35 | virtual void onMessageReceived(const sp &msg); 36 | 37 | private: 38 | enum { 39 | kWhatPush = 'push' 40 | }; 41 | 42 | FILE *mFile; 43 | int mSocket; 44 | struct sockaddr_in mRemoteAddr; 45 | 46 | uint32_t mFirstTimeMs; 47 | int64_t mFirstTimeUs; 48 | 49 | bool onPush(); 50 | 51 | DISALLOW_EVIL_CONSTRUCTORS(UDPPusher); 52 | }; 53 | 54 | } // namespace android 55 | 56 | #endif // UDP_PUSHER_H_ 57 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/tests/Android.mk: -------------------------------------------------------------------------------- 1 | # Build the unit tests. 2 | LOCAL_PATH:= $(call my-dir) 3 | include $(CLEAR_VARS) 4 | 5 | ifneq ($(TARGET_SIMULATOR),true) 6 | 7 | LOCAL_MODULE := SurfaceMediaSource_test 8 | 9 | LOCAL_MODULE_TAGS := tests 10 | 11 | LOCAL_SRC_FILES := \ 12 | SurfaceMediaSource_test.cpp \ 13 | DummyRecorder.cpp \ 14 | 15 | LOCAL_SHARED_LIBRARIES := \ 16 | libEGL \ 17 | libGLESv2 \ 18 | libbinder \ 19 | libcutils \ 20 | libgui \ 21 | libmedia \ 22 | libstagefright \ 23 | libstagefright_foundation \ 24 | libstagefright_omx \ 25 | libstlport \ 26 | libsync \ 27 | libui \ 28 | libutils \ 29 | 30 | LOCAL_STATIC_LIBRARIES := \ 31 | libgtest \ 32 | libgtest_main \ 33 | 34 | LOCAL_C_INCLUDES := \ 35 | bionic \ 36 | bionic/libstdc++/include \ 37 | external/gtest/include \ 38 | external/stlport/stlport \ 39 | frameworks/av/media/libstagefright \ 40 | frameworks/av/media/libstagefright/include \ 41 | $(TOP)/frameworks/native/include/media/openmax \ 42 | 43 | include $(BUILD_EXECUTABLE) 44 | 45 | endif 46 | 47 | # Include subdirectory makefiles 48 | # ============================================================ 49 | 50 | # If we're building with ONE_SHOT_MAKEFILE (mm, mmm), then what the framework 51 | # team really wants is to build the stuff defined by this makefile. 52 | ifeq (,$(ONE_SHOT_MAKEFILE)) 53 | include $(call first-makefiles-under,$(LOCAL_PATH)) 54 | endif 55 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/tests/DummyRecorder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef DUMMY_RECORDER_H_ 18 | #define DUMMY_RECORDER_H_ 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | 25 | namespace android { 26 | 27 | class MediaSource; 28 | class MediaBuffer; 29 | 30 | class DummyRecorder { 31 | public: 32 | // The media source from which this will receive frames 33 | sp mSource; 34 | bool mStarted; 35 | pthread_t mThread; 36 | 37 | status_t start(); 38 | status_t stop(); 39 | 40 | // actual entry point for the thread 41 | void readFromSource(); 42 | 43 | // static function to wrap the actual thread entry point 44 | static void *threadWrapper(void *pthis); 45 | 46 | DummyRecorder(const sp &source) : mSource(source) 47 | , mStarted(false) {} 48 | ~DummyRecorder( ) {} 49 | 50 | private: 51 | 52 | DISALLOW_EVIL_CONSTRUCTORS(DummyRecorder); 53 | }; 54 | 55 | } // end of namespace android 56 | #endif 57 | 58 | 59 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/tests/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/tests/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/timedtext/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES:= \ 5 | TextDescriptions.cpp \ 6 | TimedTextDriver.cpp \ 7 | TimedText3GPPSource.cpp \ 8 | TimedTextSource.cpp \ 9 | TimedTextSRTSource.cpp \ 10 | TimedTextPlayer.cpp 11 | 12 | LOCAL_CFLAGS += -Wno-multichar 13 | LOCAL_C_INCLUDES:= \ 14 | $(TOP)/frameworks/av/include/media/stagefright/timedtext \ 15 | $(TOP)/frameworks/av/media/libstagefright 16 | 17 | LOCAL_MODULE:= libstagefright_timedtext 18 | 19 | include $(BUILD_STATIC_LIBRARY) 20 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/timedtext/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/timedtext/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/timedtext/test/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | 3 | # ================================================================ 4 | # Unit tests for libstagefright_timedtext 5 | # See also /development/testrunner/test_defs.xml 6 | # ================================================================ 7 | 8 | # ================================================================ 9 | # A test for TimedTextSRTSource 10 | # ================================================================ 11 | include $(CLEAR_VARS) 12 | 13 | LOCAL_MODULE := TimedTextSRTSource_test 14 | 15 | LOCAL_MODULE_TAGS := eng tests 16 | 17 | LOCAL_SRC_FILES := TimedTextSRTSource_test.cpp 18 | 19 | LOCAL_C_INCLUDES := \ 20 | $(TOP)/external/expat/lib \ 21 | $(TOP)/frameworks/base/media/libstagefright/timedtext 22 | 23 | LOCAL_SHARED_LIBRARIES := \ 24 | libexpat \ 25 | libstagefright 26 | 27 | include $(BUILD_NATIVE_TEST) 28 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/wifi-display/Parameters.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012, The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | namespace android { 23 | 24 | struct Parameters : public RefBase { 25 | static sp Parse(const char *data, size_t size); 26 | 27 | bool findParameter(const char *name, AString *value) const; 28 | 29 | protected: 30 | virtual ~Parameters(); 31 | 32 | private: 33 | KeyedVector mDict; 34 | 35 | Parameters(); 36 | status_t parse(const char *data, size_t size); 37 | 38 | DISALLOW_EVIL_CONSTRUCTORS(Parameters); 39 | }; 40 | 41 | } // namespace android 42 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/wifi-display/TimeSeries.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012, The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef TIME_SERIES_H_ 18 | 19 | #define TIME_SERIES_H_ 20 | 21 | #include 22 | 23 | namespace android { 24 | 25 | struct TimeSeries { 26 | TimeSeries(); 27 | 28 | void add(double val); 29 | 30 | double mean() const; 31 | double sdev() const; 32 | 33 | private: 34 | enum { 35 | kHistorySize = 20 36 | }; 37 | double mValues[kHistorySize]; 38 | 39 | size_t mCount; 40 | double mSum; 41 | }; 42 | 43 | } // namespace android 44 | 45 | #endif // TIME_SERIES_H_ 46 | 47 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/wifi-display/sink/LinearRegression.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012, The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef LINEAR_REGRESSION_H_ 18 | 19 | #define LINEAR_REGRESSION_H_ 20 | 21 | #include 22 | #include 23 | 24 | namespace android { 25 | 26 | // Helper class to fit a line to a set of points minimizing the sum of 27 | // squared (orthogonal) distances from line to individual points. 28 | struct LinearRegression { 29 | LinearRegression(size_t historySize); 30 | ~LinearRegression(); 31 | 32 | void addPoint(float x, float y); 33 | 34 | bool approxLine(float *n1, float *n2, float *b) const; 35 | 36 | private: 37 | struct Point { 38 | float mX, mY; 39 | }; 40 | 41 | size_t mHistorySize; 42 | size_t mCount; 43 | Point *mHistory; 44 | 45 | float mSumX, mSumY; 46 | 47 | DISALLOW_EVIL_CONSTRUCTORS(LinearRegression); 48 | }; 49 | 50 | } // namespace android 51 | 52 | #endif // LINEAR_REGRESSION_H_ 53 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/wifi-display/source/RepeaterSource.h: -------------------------------------------------------------------------------- 1 | #ifndef REPEATER_SOURCE_H_ 2 | 3 | #define REPEATER_SOURCE_H_ 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #define SUSPEND_VIDEO_IF_IDLE 1 10 | 11 | namespace android { 12 | 13 | // This MediaSource delivers frames at a constant rate by repeating buffers 14 | // if necessary. 15 | struct RepeaterSource : public MediaSource { 16 | RepeaterSource(const sp &source, double rateHz); 17 | 18 | virtual status_t start(MetaData *params); 19 | virtual status_t stop(); 20 | virtual sp getFormat(); 21 | 22 | virtual status_t read( 23 | MediaBuffer **buffer, const ReadOptions *options); 24 | 25 | void onMessageReceived(const sp &msg); 26 | 27 | // If RepeaterSource is currently dormant, because SurfaceFlinger didn't 28 | // send updates in a while, this is its wakeup call. 29 | void wakeUp(); 30 | 31 | protected: 32 | virtual ~RepeaterSource(); 33 | 34 | private: 35 | enum { 36 | kWhatRead, 37 | }; 38 | 39 | Mutex mLock; 40 | Condition mCondition; 41 | 42 | bool mStarted; 43 | 44 | sp mSource; 45 | double mRateHz; 46 | 47 | sp mLooper; 48 | sp > mReflector; 49 | 50 | MediaBuffer *mBuffer; 51 | status_t mResult; 52 | int64_t mLastBufferUpdateUs; 53 | 54 | int64_t mStartTimeUs; 55 | int32_t mFrameCount; 56 | 57 | void postRead(); 58 | 59 | DISALLOW_EVIL_CONSTRUCTORS(RepeaterSource); 60 | }; 61 | 62 | } // namespace android 63 | 64 | #endif // REPEATER_SOURCE_H_ 65 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/yuv/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_SRC_FILES:= \ 5 | YUVImage.cpp \ 6 | YUVCanvas.cpp 7 | 8 | LOCAL_SHARED_LIBRARIES := \ 9 | libcutils 10 | 11 | LOCAL_MODULE:= libstagefright_yuv 12 | 13 | 14 | 15 | include $(BUILD_SHARED_LIBRARY) 16 | -------------------------------------------------------------------------------- /app/src/main/cpp/libstagefright/yuv/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/cpp/libstagefright/yuv/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /app/src/main/cpp/native-lib.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | extern "C" JNIEXPORT jstring JNICALL 6 | Java_com_zxj_android_source_MainActivity_stringFromJNI( 7 | JNIEnv* env, 8 | jobject /* this */) { 9 | std::string hello = "Hello from C++"; 10 | // CHECK() 11 | return env->NewStringUTF(hello.c_str()); 12 | } -------------------------------------------------------------------------------- /app/src/main/java/com/zxj/android/source/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.zxj.android.source; 2 | 3 | import androidx.appcompat.app.AppCompatActivity; 4 | 5 | import android.os.Bundle; 6 | import android.widget.TextView; 7 | 8 | import com.zxj.android.source.databinding.ActivityMainBinding; 9 | 10 | public class MainActivity extends AppCompatActivity { 11 | 12 | // Used to load the 'native-lib' library on application startup. 13 | static { 14 | System.loadLibrary("native-lib"); 15 | } 16 | 17 | private ActivityMainBinding binding; 18 | 19 | @Override 20 | protected void onCreate(Bundle savedInstanceState) { 21 | super.onCreate(savedInstanceState); 22 | 23 | binding = ActivityMainBinding.inflate(getLayoutInflater()); 24 | setContentView(binding.getRoot()); 25 | 26 | // Example of a call to a native method 27 | TextView tv = binding.sampleText; 28 | tv.setText(stringFromJNI()); 29 | } 30 | 31 | /** 32 | * A native method that is implemented by the 'native-lib' native library, 33 | * which is packaged with this application. 34 | */ 35 | public native String stringFromJNI(); 36 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | native-source 3 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /app/src/test/java/com/zxj/android/source/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.zxj.android.source; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | buildscript { 3 | repositories { 4 | google() 5 | mavenCentral() 6 | } 7 | dependencies { 8 | classpath "com.android.tools.build:gradle:4.2.2" 9 | 10 | // NOTE: Do not place your application dependencies here; they belong 11 | // in the individual module build.gradle files 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | google() 18 | mavenCentral() 19 | jcenter() // Warning: this repository is going to shut down soon 20 | } 21 | } 22 | 23 | task clean(type: Delete) { 24 | delete rootProject.buildDir 25 | } -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app"s APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzuo/source-sink/052c7bb09ddd299564075221c2be804fb1525336/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Jul 12 15:08:52 CST 2022 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = "source-sink" 2 | include ':app' 3 | --------------------------------------------------------------------------------