├── .gitignore
├── .idea
├── compiler.xml
├── copyright
│ └── profiles_settings.xml
├── encodings.xml
├── gradle.xml
├── misc.xml
├── modules.xml
└── runConfigurations.xml
├── README.md
├── app-debug.apk
├── app
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── estrongs
│ │ └── android
│ │ └── pop
│ │ └── video
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── estrongs
│ │ │ └── android
│ │ │ └── pop
│ │ │ └── video
│ │ │ ├── BaseFragment.java
│ │ │ ├── IUI.java
│ │ │ ├── MainActivity.java
│ │ │ ├── MyApplication.java
│ │ │ ├── edit
│ │ │ ├── EditCacheManager.java
│ │ │ ├── EditFragment.java
│ │ │ ├── EditManager.java
│ │ │ ├── cut
│ │ │ │ ├── CutActivity.java
│ │ │ │ ├── CutFragment.java
│ │ │ │ └── CutManager.java
│ │ │ ├── muxer
│ │ │ │ ├── Audio.java
│ │ │ │ ├── AudioDecoder.java
│ │ │ │ ├── AudioEncoder.java
│ │ │ │ ├── IMuxerController.java
│ │ │ │ ├── MediaError.java
│ │ │ │ ├── MediaHelper.java
│ │ │ │ ├── Muxer.java
│ │ │ │ ├── OverlayEffect.java
│ │ │ │ ├── ProgressListener.java
│ │ │ │ ├── TextureRender.java
│ │ │ │ ├── Video.java
│ │ │ │ ├── VideoDecoder.java
│ │ │ │ └── VideoEncoder.java
│ │ │ ├── overlay
│ │ │ │ ├── DrawOverlayView.java
│ │ │ │ ├── OverlayDrawer.java
│ │ │ │ └── OverlayView.java
│ │ │ └── view
│ │ │ │ └── frames
│ │ │ │ ├── VideoFrameExtractor.java
│ │ │ │ ├── VideoFrames.java
│ │ │ │ └── VideoFramesView.java
│ │ │ ├── filter
│ │ │ ├── IVideoFilter.java
│ │ │ └── VideoFilterProvider.java
│ │ │ ├── opengl
│ │ │ ├── EGLHelper.java
│ │ │ ├── FrameRender.java
│ │ │ ├── GLHelper.java
│ │ │ ├── OverlayRender.java
│ │ │ └── RenderHelper.java
│ │ │ ├── player
│ │ │ └── VideoTimeBar.java
│ │ │ └── util
│ │ │ ├── AndroidUtil.java
│ │ │ ├── BitmapUtil.java
│ │ │ ├── DensityUtil.java
│ │ │ └── FileUtil.java
│ └── res
│ │ ├── drawable
│ │ ├── chevron_left.png
│ │ ├── fengj.png
│ │ └── icon_handle_transparent.png
│ │ ├── layout
│ │ ├── activity_main.xml
│ │ ├── cut.xml
│ │ ├── fragment_cut.xml
│ │ ├── fragment_edit.xml
│ │ ├── video_player_controls.xml
│ │ └── video_player_view.xml
│ │ ├── menu
│ │ └── menu_main.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
│ │ ├── raw
│ │ ├── simple_fragment_shader2.glsl
│ │ ├── simple_vertex_shader2.glsl
│ │ ├── videoeditor_fragment_shader.glsl
│ │ └── videoeditor_verctex_shader.glsl
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── estrongs
│ └── android
│ └── pop
│ └── video
│ └── ExampleUnitTest.java
├── build.gradle
├── exoplayer_core
├── .gitignore
├── build.gradle
└── src
│ ├── androidTest
│ ├── AndroidManifest.xml
│ ├── assets
│ │ ├── flv
│ │ │ ├── sample.flv
│ │ │ └── sample.flv.0.dump
│ │ ├── mkv
│ │ │ ├── sample.mkv
│ │ │ ├── sample.mkv.0.dump
│ │ │ ├── sample.mkv.1.dump
│ │ │ ├── sample.mkv.2.dump
│ │ │ ├── sample.mkv.3.dump
│ │ │ ├── subsample_encrypted_altref.webm
│ │ │ ├── subsample_encrypted_altref.webm.0.dump
│ │ │ ├── subsample_encrypted_noaltref.webm
│ │ │ └── subsample_encrypted_noaltref.webm.0.dump
│ │ ├── mp3
│ │ │ ├── bear.mp3
│ │ │ ├── bear.mp3.0.dump
│ │ │ ├── bear.mp3.1.dump
│ │ │ ├── bear.mp3.2.dump
│ │ │ ├── bear.mp3.3.dump
│ │ │ ├── play-trimmed.mp3
│ │ │ ├── play-trimmed.mp3.0.dump
│ │ │ ├── play-trimmed.mp3.1.dump
│ │ │ ├── play-trimmed.mp3.2.dump
│ │ │ ├── play-trimmed.mp3.3.dump
│ │ │ └── play-trimmed.mp3.unklen.dump
│ │ ├── mp4
│ │ │ ├── sample.mp4
│ │ │ ├── sample.mp4.0.dump
│ │ │ ├── sample.mp4.1.dump
│ │ │ ├── sample.mp4.2.dump
│ │ │ ├── sample.mp4.3.dump
│ │ │ ├── sample_fragmented.mp4
│ │ │ ├── sample_fragmented.mp4.0.dump
│ │ │ ├── sample_fragmented_sei.mp4
│ │ │ ├── sample_fragmented_sei.mp4.0.dump
│ │ │ └── sample_fragmented_zero_size_atom.mp4
│ │ ├── ogg
│ │ │ ├── bear.opus
│ │ │ ├── bear.opus.0.dump
│ │ │ ├── bear.opus.1.dump
│ │ │ ├── bear.opus.2.dump
│ │ │ ├── bear.opus.3.dump
│ │ │ ├── bear.opus.unklen.dump
│ │ │ ├── bear_flac.ogg
│ │ │ ├── bear_flac.ogg.0.dump
│ │ │ ├── bear_flac.ogg.1.dump
│ │ │ ├── bear_flac.ogg.2.dump
│ │ │ ├── bear_flac.ogg.3.dump
│ │ │ ├── bear_flac.ogg.unklen.dump
│ │ │ ├── bear_flac_noseektable.ogg
│ │ │ ├── bear_flac_noseektable.ogg.0.dump
│ │ │ ├── bear_flac_noseektable.ogg.1.dump
│ │ │ ├── bear_flac_noseektable.ogg.2.dump
│ │ │ ├── bear_flac_noseektable.ogg.3.dump
│ │ │ ├── bear_flac_noseektable.ogg.unklen.dump
│ │ │ ├── bear_vorbis.ogg
│ │ │ ├── bear_vorbis.ogg.0.dump
│ │ │ ├── bear_vorbis.ogg.1.dump
│ │ │ ├── bear_vorbis.ogg.2.dump
│ │ │ ├── bear_vorbis.ogg.3.dump
│ │ │ └── bear_vorbis.ogg.unklen.dump
│ │ ├── rawcc
│ │ │ ├── sample.rawcc
│ │ │ └── sample.rawcc.0.dump
│ │ ├── subrip
│ │ │ ├── empty
│ │ │ ├── no_end_timecodes
│ │ │ ├── typical
│ │ │ ├── typical_extra_blank_line
│ │ │ ├── typical_missing_sequence
│ │ │ ├── typical_missing_timecode
│ │ │ ├── typical_negative_timestamps
│ │ │ └── typical_with_byte_order_mark
│ │ ├── ts
│ │ │ ├── sample.ac3
│ │ │ ├── sample.ac3.0.dump
│ │ │ ├── sample.adts
│ │ │ ├── sample.adts.0.dump
│ │ │ ├── sample.ps
│ │ │ ├── sample.ps.0.dump
│ │ │ ├── sample.ts
│ │ │ ├── sample.ts.0.dump
│ │ │ └── sample_with_sdt.ts
│ │ ├── ttml
│ │ │ ├── chain_multiple_styles.xml
│ │ │ ├── font_size.xml
│ │ │ ├── font_size_empty.xml
│ │ │ ├── font_size_invalid.xml
│ │ │ ├── font_size_no_unit.xml
│ │ │ ├── frame_rate.xml
│ │ │ ├── inherit_and_override_style.xml
│ │ │ ├── inherit_global_and_parent.xml
│ │ │ ├── inherit_multiple_styles.xml
│ │ │ ├── inherit_style.xml
│ │ │ ├── inline_style_attributes.xml
│ │ │ ├── multiple_regions.xml
│ │ │ └── no_underline_linethrough.xml
│ │ ├── tx3g
│ │ │ ├── initialization
│ │ │ ├── initialization_all_defaults
│ │ │ ├── no_subtitle
│ │ │ ├── sample_just_text
│ │ │ ├── sample_utf16_be_no_styl
│ │ │ ├── sample_utf16_le_no_styl
│ │ │ ├── sample_with_multiple_styl
│ │ │ ├── sample_with_other_extension
│ │ │ ├── sample_with_styl
│ │ │ ├── sample_with_styl_all_defaults
│ │ │ └── sample_with_tbox
│ │ ├── wav
│ │ │ ├── sample.wav
│ │ │ ├── sample.wav.0.dump
│ │ │ ├── sample.wav.1.dump
│ │ │ ├── sample.wav.2.dump
│ │ │ └── sample.wav.3.dump
│ │ ├── webm
│ │ │ └── vorbis_codec_private
│ │ └── webvtt
│ │ │ ├── empty
│ │ │ ├── typical
│ │ │ ├── typical_with_comments
│ │ │ ├── typical_with_identifiers
│ │ │ ├── with_bad_cue_header
│ │ │ ├── with_css_complex_selectors
│ │ │ ├── with_css_styles
│ │ │ ├── with_positioning
│ │ │ └── with_tags
│ └── java
│ │ └── com
│ │ └── google
│ │ └── android
│ │ └── exoplayer2
│ │ ├── CTest.java
│ │ ├── ExoPlayerTest.java
│ │ ├── FormatTest.java
│ │ ├── drm
│ │ ├── DrmInitDataTest.java
│ │ └── OfflineLicenseHelperTest.java
│ │ ├── extractor
│ │ ├── DefaultExtractorInputTest.java
│ │ ├── ExtractorTest.java
│ │ ├── flv
│ │ │ └── FlvExtractorTest.java
│ │ ├── mkv
│ │ │ ├── DefaultEbmlReaderTest.java
│ │ │ ├── MatroskaExtractorTest.java
│ │ │ └── VarintReaderTest.java
│ │ ├── mp3
│ │ │ ├── Mp3ExtractorTest.java
│ │ │ └── XingSeekerTest.java
│ │ ├── mp4
│ │ │ ├── AtomParsersTest.java
│ │ │ ├── FragmentedMp4ExtractorTest.java
│ │ │ └── Mp4ExtractorTest.java
│ │ ├── ogg
│ │ │ ├── DefaultOggSeekerTest.java
│ │ │ ├── DefaultOggSeekerUtilMethodsTest.java
│ │ │ ├── OggExtractorTest.java
│ │ │ ├── OggPacketTest.java
│ │ │ ├── OggPageHeaderTest.java
│ │ │ ├── OggTestFile.java
│ │ │ ├── TestData.java
│ │ │ ├── VorbisBitArrayTest.java
│ │ │ ├── VorbisReaderTest.java
│ │ │ └── VorbisUtilTest.java
│ │ ├── rawcc
│ │ │ └── RawCcExtractorTest.java
│ │ ├── ts
│ │ │ ├── Ac3ExtractorTest.java
│ │ │ ├── AdtsExtractorTest.java
│ │ │ ├── AdtsReaderTest.java
│ │ │ ├── PsExtractorTest.java
│ │ │ ├── SectionReaderTest.java
│ │ │ └── TsExtractorTest.java
│ │ └── wav
│ │ │ └── WavExtractorTest.java
│ │ ├── metadata
│ │ ├── emsg
│ │ │ ├── EventMessageDecoderTest.java
│ │ │ └── EventMessageTest.java
│ │ ├── id3
│ │ │ ├── ChapterFrameTest.java
│ │ │ ├── ChapterTocFrameTest.java
│ │ │ └── Id3DecoderTest.java
│ │ └── scte35
│ │ │ └── SpliceInfoDecoderTest.java
│ │ ├── source
│ │ └── ClippingMediaSourceTest.java
│ │ ├── text
│ │ ├── subrip
│ │ │ └── SubripDecoderTest.java
│ │ ├── ttml
│ │ │ ├── TtmlDecoderTest.java
│ │ │ ├── TtmlRenderUtilTest.java
│ │ │ └── TtmlStyleTest.java
│ │ ├── tx3g
│ │ │ └── Tx3gDecoderTest.java
│ │ └── webvtt
│ │ │ ├── CssParserTest.java
│ │ │ ├── Mp4WebvttDecoderTest.java
│ │ │ ├── WebvttCueParserTest.java
│ │ │ ├── WebvttDecoderTest.java
│ │ │ └── WebvttSubtitleTest.java
│ │ ├── upstream
│ │ ├── ByteArrayDataSourceTest.java
│ │ ├── DataSourceInputStreamTest.java
│ │ ├── cache
│ │ │ ├── CacheDataSourceTest.java
│ │ │ ├── CacheDataSourceTest2.java
│ │ │ ├── CachedContentIndexTest.java
│ │ │ ├── CachedRegionTrackerTest.java
│ │ │ ├── SimpleCacheSpanTest.java
│ │ │ └── SimpleCacheTest.java
│ │ └── crypto
│ │ │ └── AesFlushingCipherTest.java
│ │ └── util
│ │ ├── AtomicFileTest.java
│ │ ├── ColorParserTest.java
│ │ ├── NalUnitUtilTest.java
│ │ ├── ParsableByteArrayTest.java
│ │ ├── ParsableNalUnitBitArrayTest.java
│ │ ├── ReusableBufferedOutputStreamTest.java
│ │ ├── UriUtilTest.java
│ │ └── UtilTest.java
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── google
│ │ └── android
│ │ └── exoplayer2
│ │ ├── BaseRenderer.java
│ │ ├── C.java
│ │ ├── DefaultLoadControl.java
│ │ ├── DefaultRenderersFactory.java
│ │ ├── ExoPlaybackException.java
│ │ ├── ExoPlayer.java
│ │ ├── ExoPlayerFactory.java
│ │ ├── ExoPlayerImpl.java
│ │ ├── ExoPlayerImplInternal.java
│ │ ├── ExoPlayerLibraryInfo.java
│ │ ├── Format.java
│ │ ├── FormatHolder.java
│ │ ├── IllegalSeekPositionException.java
│ │ ├── LoadControl.java
│ │ ├── ParserException.java
│ │ ├── PlaybackParameters.java
│ │ ├── Renderer.java
│ │ ├── RendererCapabilities.java
│ │ ├── RendererConfiguration.java
│ │ ├── RenderersFactory.java
│ │ ├── SimpleExoPlayer.java
│ │ ├── Timeline.java
│ │ ├── audio
│ │ ├── Ac3Util.java
│ │ ├── AudioCapabilities.java
│ │ ├── AudioCapabilitiesReceiver.java
│ │ ├── AudioDecoderException.java
│ │ ├── AudioProcessor.java
│ │ ├── AudioRendererEventListener.java
│ │ ├── AudioTrack.java
│ │ ├── ChannelMappingAudioProcessor.java
│ │ ├── DtsUtil.java
│ │ ├── MediaCodecAudioRenderer.java
│ │ ├── ResamplingAudioProcessor.java
│ │ ├── SimpleDecoderAudioRenderer.java
│ │ ├── Sonic.java
│ │ └── SonicAudioProcessor.java
│ │ ├── decoder
│ │ ├── Buffer.java
│ │ ├── CryptoInfo.java
│ │ ├── Decoder.java
│ │ ├── DecoderCounters.java
│ │ ├── DecoderInputBuffer.java
│ │ ├── OutputBuffer.java
│ │ ├── SimpleDecoder.java
│ │ └── SimpleOutputBuffer.java
│ │ ├── drm
│ │ ├── DecryptionException.java
│ │ ├── DefaultDrmSessionManager.java
│ │ ├── DrmInitData.java
│ │ ├── DrmSession.java
│ │ ├── DrmSessionManager.java
│ │ ├── ExoMediaCrypto.java
│ │ ├── ExoMediaDrm.java
│ │ ├── FrameworkMediaCrypto.java
│ │ ├── FrameworkMediaDrm.java
│ │ ├── HttpMediaDrmCallback.java
│ │ ├── KeysExpiredException.java
│ │ ├── MediaDrmCallback.java
│ │ ├── OfflineLicenseHelper.java
│ │ ├── UnsupportedDrmException.java
│ │ └── WidevineUtil.java
│ │ ├── extractor
│ │ ├── ChunkIndex.java
│ │ ├── DefaultExtractorInput.java
│ │ ├── DefaultExtractorsFactory.java
│ │ ├── DefaultTrackOutput.java
│ │ ├── DummyTrackOutput.java
│ │ ├── Extractor.java
│ │ ├── ExtractorInput.java
│ │ ├── ExtractorOutput.java
│ │ ├── ExtractorsFactory.java
│ │ ├── GaplessInfoHolder.java
│ │ ├── MpegAudioHeader.java
│ │ ├── PositionHolder.java
│ │ ├── SeekMap.java
│ │ ├── TrackOutput.java
│ │ ├── flv
│ │ │ ├── AudioTagPayloadReader.java
│ │ │ ├── FlvExtractor.java
│ │ │ ├── ScriptTagPayloadReader.java
│ │ │ ├── TagPayloadReader.java
│ │ │ └── VideoTagPayloadReader.java
│ │ ├── mkv
│ │ │ ├── DefaultEbmlReader.java
│ │ │ ├── EbmlReader.java
│ │ │ ├── EbmlReaderOutput.java
│ │ │ ├── MatroskaExtractor.java
│ │ │ ├── Sniffer.java
│ │ │ └── VarintReader.java
│ │ ├── mp3
│ │ │ ├── ConstantBitrateSeeker.java
│ │ │ ├── Mp3Extractor.java
│ │ │ ├── VbriSeeker.java
│ │ │ └── XingSeeker.java
│ │ ├── mp4
│ │ │ ├── Atom.java
│ │ │ ├── AtomParsers.java
│ │ │ ├── DefaultSampleValues.java
│ │ │ ├── FixedSampleSizeRechunker.java
│ │ │ ├── FragmentedMp4Extractor.java
│ │ │ ├── MetadataUtil.java
│ │ │ ├── Mp4Extractor.java
│ │ │ ├── PsshAtomUtil.java
│ │ │ ├── Sniffer.java
│ │ │ ├── Track.java
│ │ │ ├── TrackEncryptionBox.java
│ │ │ ├── TrackFragment.java
│ │ │ └── TrackSampleTable.java
│ │ ├── ogg
│ │ │ ├── DefaultOggSeeker.java
│ │ │ ├── FlacReader.java
│ │ │ ├── OggExtractor.java
│ │ │ ├── OggPacket.java
│ │ │ ├── OggPageHeader.java
│ │ │ ├── OggSeeker.java
│ │ │ ├── OpusReader.java
│ │ │ ├── StreamReader.java
│ │ │ ├── VorbisBitArray.java
│ │ │ ├── VorbisReader.java
│ │ │ └── VorbisUtil.java
│ │ ├── rawcc
│ │ │ └── RawCcExtractor.java
│ │ ├── ts
│ │ │ ├── Ac3Extractor.java
│ │ │ ├── Ac3Reader.java
│ │ │ ├── AdtsExtractor.java
│ │ │ ├── AdtsReader.java
│ │ │ ├── DefaultTsPayloadReaderFactory.java
│ │ │ ├── DtsReader.java
│ │ │ ├── DvbSubtitleReader.java
│ │ │ ├── ElementaryStreamReader.java
│ │ │ ├── H262Reader.java
│ │ │ ├── H264Reader.java
│ │ │ ├── H265Reader.java
│ │ │ ├── Id3Reader.java
│ │ │ ├── MpegAudioReader.java
│ │ │ ├── NalUnitTargetBuffer.java
│ │ │ ├── PesReader.java
│ │ │ ├── PsExtractor.java
│ │ │ ├── SectionPayloadReader.java
│ │ │ ├── SectionReader.java
│ │ │ ├── SeiReader.java
│ │ │ ├── SpliceInfoSectionReader.java
│ │ │ ├── TsExtractor.java
│ │ │ └── TsPayloadReader.java
│ │ └── wav
│ │ │ ├── WavExtractor.java
│ │ │ ├── WavHeader.java
│ │ │ └── WavHeaderReader.java
│ │ ├── mediacodec
│ │ ├── MediaCodecInfo.java
│ │ ├── MediaCodecRenderer.java
│ │ ├── MediaCodecSelector.java
│ │ └── MediaCodecUtil.java
│ │ ├── metadata
│ │ ├── Metadata.java
│ │ ├── MetadataDecoder.java
│ │ ├── MetadataDecoderException.java
│ │ ├── MetadataDecoderFactory.java
│ │ ├── MetadataInputBuffer.java
│ │ ├── MetadataRenderer.java
│ │ ├── emsg
│ │ │ ├── EventMessage.java
│ │ │ └── EventMessageDecoder.java
│ │ ├── id3
│ │ │ ├── ApicFrame.java
│ │ │ ├── BinaryFrame.java
│ │ │ ├── ChapterFrame.java
│ │ │ ├── ChapterTocFrame.java
│ │ │ ├── CommentFrame.java
│ │ │ ├── GeobFrame.java
│ │ │ ├── Id3Decoder.java
│ │ │ ├── Id3Frame.java
│ │ │ ├── PrivFrame.java
│ │ │ ├── TextInformationFrame.java
│ │ │ └── UrlLinkFrame.java
│ │ └── scte35
│ │ │ ├── PrivateCommand.java
│ │ │ ├── SpliceCommand.java
│ │ │ ├── SpliceInfoDecoder.java
│ │ │ ├── SpliceInsertCommand.java
│ │ │ ├── SpliceNullCommand.java
│ │ │ ├── SpliceScheduleCommand.java
│ │ │ └── TimeSignalCommand.java
│ │ ├── source
│ │ ├── AdaptiveMediaSourceEventListener.java
│ │ ├── BehindLiveWindowException.java
│ │ ├── ClippingMediaPeriod.java
│ │ ├── ClippingMediaSource.java
│ │ ├── CompositeSequenceableLoader.java
│ │ ├── ConcatenatingMediaSource.java
│ │ ├── EmptySampleStream.java
│ │ ├── ExtractorMediaPeriod.java
│ │ ├── ExtractorMediaSource.java
│ │ ├── LoopingMediaSource.java
│ │ ├── MediaPeriod.java
│ │ ├── MediaSource.java
│ │ ├── MergingMediaPeriod.java
│ │ ├── MergingMediaSource.java
│ │ ├── SampleStream.java
│ │ ├── SequenceableLoader.java
│ │ ├── SinglePeriodTimeline.java
│ │ ├── SingleSampleMediaPeriod.java
│ │ ├── SingleSampleMediaSource.java
│ │ ├── TrackGroup.java
│ │ ├── TrackGroupArray.java
│ │ ├── UnrecognizedInputFormatException.java
│ │ └── chunk
│ │ │ ├── BaseMediaChunk.java
│ │ │ ├── BaseMediaChunkOutput.java
│ │ │ ├── Chunk.java
│ │ │ ├── ChunkExtractorWrapper.java
│ │ │ ├── ChunkHolder.java
│ │ │ ├── ChunkSampleStream.java
│ │ │ ├── ChunkSource.java
│ │ │ ├── ChunkedTrackBlacklistUtil.java
│ │ │ ├── ContainerMediaChunk.java
│ │ │ ├── DataChunk.java
│ │ │ ├── InitializationChunk.java
│ │ │ ├── MediaChunk.java
│ │ │ └── SingleSampleMediaChunk.java
│ │ ├── text
│ │ ├── CaptionStyleCompat.java
│ │ ├── Cue.java
│ │ ├── SimpleSubtitleDecoder.java
│ │ ├── SimpleSubtitleOutputBuffer.java
│ │ ├── Subtitle.java
│ │ ├── SubtitleDecoder.java
│ │ ├── SubtitleDecoderException.java
│ │ ├── SubtitleDecoderFactory.java
│ │ ├── SubtitleInputBuffer.java
│ │ ├── SubtitleOutputBuffer.java
│ │ ├── TextRenderer.java
│ │ ├── cea
│ │ │ ├── Cea608Decoder.java
│ │ │ ├── Cea708Cue.java
│ │ │ ├── Cea708Decoder.java
│ │ │ ├── CeaDecoder.java
│ │ │ ├── CeaOutputBuffer.java
│ │ │ ├── CeaSubtitle.java
│ │ │ └── CeaUtil.java
│ │ ├── dvb
│ │ │ ├── DvbDecoder.java
│ │ │ ├── DvbParser.java
│ │ │ └── DvbSubtitle.java
│ │ ├── subrip
│ │ │ ├── SubripDecoder.java
│ │ │ └── SubripSubtitle.java
│ │ ├── ttml
│ │ │ ├── TtmlDecoder.java
│ │ │ ├── TtmlNode.java
│ │ │ ├── TtmlRegion.java
│ │ │ ├── TtmlRenderUtil.java
│ │ │ ├── TtmlStyle.java
│ │ │ └── TtmlSubtitle.java
│ │ ├── tx3g
│ │ │ ├── Tx3gDecoder.java
│ │ │ └── Tx3gSubtitle.java
│ │ └── webvtt
│ │ │ ├── CssParser.java
│ │ │ ├── Mp4WebvttDecoder.java
│ │ │ ├── Mp4WebvttSubtitle.java
│ │ │ ├── WebvttCssStyle.java
│ │ │ ├── WebvttCue.java
│ │ │ ├── WebvttCueParser.java
│ │ │ ├── WebvttDecoder.java
│ │ │ ├── WebvttParserUtil.java
│ │ │ └── WebvttSubtitle.java
│ │ ├── trackselection
│ │ ├── AdaptiveTrackSelection.java
│ │ ├── BaseTrackSelection.java
│ │ ├── DefaultTrackSelector.java
│ │ ├── FixedTrackSelection.java
│ │ ├── MappingTrackSelector.java
│ │ ├── RandomTrackSelection.java
│ │ ├── TrackSelection.java
│ │ ├── TrackSelectionArray.java
│ │ ├── TrackSelector.java
│ │ └── TrackSelectorResult.java
│ │ ├── upstream
│ │ ├── Allocation.java
│ │ ├── Allocator.java
│ │ ├── AssetDataSource.java
│ │ ├── BandwidthMeter.java
│ │ ├── ByteArrayDataSink.java
│ │ ├── ByteArrayDataSource.java
│ │ ├── ContentDataSource.java
│ │ ├── DataSink.java
│ │ ├── DataSource.java
│ │ ├── DataSourceException.java
│ │ ├── DataSourceInputStream.java
│ │ ├── DataSpec.java
│ │ ├── DefaultAllocator.java
│ │ ├── DefaultBandwidthMeter.java
│ │ ├── DefaultDataSource.java
│ │ ├── DefaultDataSourceFactory.java
│ │ ├── DefaultHttpDataSource.java
│ │ ├── DefaultHttpDataSourceFactory.java
│ │ ├── DummyDataSource.java
│ │ ├── FileDataSource.java
│ │ ├── FileDataSourceFactory.java
│ │ ├── HttpDataSource.java
│ │ ├── Loader.java
│ │ ├── LoaderErrorThrower.java
│ │ ├── ParsingLoadable.java
│ │ ├── PriorityDataSource.java
│ │ ├── PriorityDataSourceFactory.java
│ │ ├── RawResourceDataSource.java
│ │ ├── TeeDataSource.java
│ │ ├── TransferListener.java
│ │ ├── UdpDataSource.java
│ │ ├── cache
│ │ │ ├── Cache.java
│ │ │ ├── CacheDataSink.java
│ │ │ ├── CacheDataSinkFactory.java
│ │ │ ├── CacheDataSource.java
│ │ │ ├── CacheDataSourceFactory.java
│ │ │ ├── CacheEvictor.java
│ │ │ ├── CacheSpan.java
│ │ │ ├── CacheUtil.java
│ │ │ ├── CachedContent.java
│ │ │ ├── CachedContentIndex.java
│ │ │ ├── CachedRegionTracker.java
│ │ │ ├── LeastRecentlyUsedCacheEvictor.java
│ │ │ ├── NoOpCacheEvictor.java
│ │ │ ├── SimpleCache.java
│ │ │ └── SimpleCacheSpan.java
│ │ └── crypto
│ │ │ ├── AesCipherDataSink.java
│ │ │ ├── AesCipherDataSource.java
│ │ │ ├── AesFlushingCipher.java
│ │ │ └── CryptoUtil.java
│ │ ├── util
│ │ ├── Assertions.java
│ │ ├── AtomicFile.java
│ │ ├── Clock.java
│ │ ├── CodecSpecificDataUtil.java
│ │ ├── ColorParser.java
│ │ ├── ConditionVariable.java
│ │ ├── FlacStreamInfo.java
│ │ ├── LibraryLoader.java
│ │ ├── LongArray.java
│ │ ├── MediaClock.java
│ │ ├── MimeTypes.java
│ │ ├── NalUnitUtil.java
│ │ ├── ParsableBitArray.java
│ │ ├── ParsableByteArray.java
│ │ ├── ParsableNalUnitBitArray.java
│ │ ├── Predicate.java
│ │ ├── PriorityTaskManager.java
│ │ ├── ReusableBufferedOutputStream.java
│ │ ├── SlidingPercentile.java
│ │ ├── StandaloneMediaClock.java
│ │ ├── SystemClock.java
│ │ ├── TimestampAdjuster.java
│ │ ├── TraceUtil.java
│ │ ├── UriUtil.java
│ │ ├── Util.java
│ │ └── XmlPullParserUtil.java
│ │ └── video
│ │ ├── AvcConfig.java
│ │ ├── ColorInfo.java
│ │ ├── HevcConfig.java
│ │ ├── MediaCodecVideoRenderer.java
│ │ ├── VideoFrameReleaseTimeHelper.java
│ │ └── VideoRendererEventListener.java
│ └── javadoc
│ └── com
│ └── google
│ └── android
│ └── exoplayer2
│ └── doc-files
│ ├── exoplayer-threading-model.svg
│ ├── renderer-states.svg
│ ├── timeline-advanced.svg
│ ├── timeline-live-indefinite.svg
│ ├── timeline-live-limited.svg
│ ├── timeline-live-multi-period.svg
│ ├── timeline-period.svg
│ ├── timeline-playlist.svg
│ ├── timeline-single-file.svg
│ └── timeline-window.svg
├── exoplayer_ui
├── .gitignore
├── build.gradle
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── google
│ │ └── android
│ │ └── exoplayer2
│ │ └── ui
│ │ ├── AspectRatioFrameLayout.java
│ │ ├── DebugTextViewHelper.java
│ │ ├── DefaultTimeBar.java
│ │ ├── PlaybackControlView.java
│ │ ├── SimpleExoPlayerView.java
│ │ ├── SubtitlePainter.java
│ │ ├── SubtitleView.java
│ │ └── TimeBar.java
│ └── res
│ ├── drawable-anydpi-v21
│ ├── exo_controls_fastforward.xml
│ ├── exo_controls_next.xml
│ ├── exo_controls_pause.xml
│ ├── exo_controls_play.xml
│ ├── exo_controls_previous.xml
│ └── exo_controls_rewind.xml
│ ├── drawable-hdpi
│ ├── exo_controls_fastforward.png
│ ├── exo_controls_next.png
│ ├── exo_controls_pause.png
│ ├── exo_controls_play.png
│ ├── exo_controls_previous.png
│ └── exo_controls_rewind.png
│ ├── drawable-ldpi
│ ├── exo_controls_fastforward.png
│ ├── exo_controls_next.png
│ ├── exo_controls_pause.png
│ ├── exo_controls_play.png
│ ├── exo_controls_previous.png
│ └── exo_controls_rewind.png
│ ├── drawable-mdpi
│ ├── exo_controls_fastforward.png
│ ├── exo_controls_next.png
│ ├── exo_controls_pause.png
│ ├── exo_controls_play.png
│ ├── exo_controls_previous.png
│ └── exo_controls_rewind.png
│ ├── drawable-xhdpi
│ ├── exo_controls_fastforward.png
│ ├── exo_controls_next.png
│ ├── exo_controls_pause.png
│ ├── exo_controls_play.png
│ ├── exo_controls_previous.png
│ └── exo_controls_rewind.png
│ ├── drawable-xxhdpi
│ ├── exo_controls_fastforward.png
│ ├── exo_controls_next.png
│ ├── exo_controls_pause.png
│ ├── exo_controls_play.png
│ ├── exo_controls_previous.png
│ └── exo_controls_rewind.png
│ ├── drawable
│ └── exo_edit_mode_logo.xml
│ ├── layout
│ ├── exo_playback_control_view.xml
│ └── exo_simple_player_view.xml
│ ├── values-af
│ └── strings.xml
│ ├── values-am
│ └── strings.xml
│ ├── values-ar
│ └── strings.xml
│ ├── values-az-rAZ
│ └── strings.xml
│ ├── values-b+sr+Latn
│ └── strings.xml
│ ├── values-be-rBY
│ └── strings.xml
│ ├── values-bg
│ └── strings.xml
│ ├── values-bn-rBD
│ └── strings.xml
│ ├── values-bs-rBA
│ └── strings.xml
│ ├── values-ca
│ └── strings.xml
│ ├── values-cs
│ └── strings.xml
│ ├── values-da
│ └── strings.xml
│ ├── values-de
│ └── strings.xml
│ ├── values-el
│ └── strings.xml
│ ├── values-en-rAU
│ └── strings.xml
│ ├── values-en-rGB
│ └── strings.xml
│ ├── values-en-rIN
│ └── strings.xml
│ ├── values-es-rUS
│ └── strings.xml
│ ├── values-es
│ └── strings.xml
│ ├── values-et-rEE
│ └── strings.xml
│ ├── values-eu-rES
│ └── strings.xml
│ ├── values-fa
│ └── strings.xml
│ ├── values-fi
│ └── strings.xml
│ ├── values-fr-rCA
│ └── strings.xml
│ ├── values-fr
│ └── strings.xml
│ ├── values-gl-rES
│ └── strings.xml
│ ├── values-gu-rIN
│ └── strings.xml
│ ├── values-hi
│ └── strings.xml
│ ├── values-hr
│ └── strings.xml
│ ├── values-hu
│ └── strings.xml
│ ├── values-hy-rAM
│ └── strings.xml
│ ├── values-in
│ └── strings.xml
│ ├── values-is-rIS
│ └── strings.xml
│ ├── values-it
│ └── strings.xml
│ ├── values-iw
│ └── strings.xml
│ ├── values-ja
│ └── strings.xml
│ ├── values-ka-rGE
│ └── strings.xml
│ ├── values-kk-rKZ
│ └── strings.xml
│ ├── values-km-rKH
│ └── strings.xml
│ ├── values-kn-rIN
│ └── strings.xml
│ ├── values-ko
│ └── strings.xml
│ ├── values-ky-rKG
│ └── strings.xml
│ ├── values-lo-rLA
│ └── strings.xml
│ ├── values-lt
│ └── strings.xml
│ ├── values-lv
│ └── strings.xml
│ ├── values-mk-rMK
│ └── strings.xml
│ ├── values-ml-rIN
│ └── strings.xml
│ ├── values-mn-rMN
│ └── strings.xml
│ ├── values-mr-rIN
│ └── strings.xml
│ ├── values-ms-rMY
│ └── strings.xml
│ ├── values-my-rMM
│ └── strings.xml
│ ├── values-nb
│ └── strings.xml
│ ├── values-ne-rNP
│ └── strings.xml
│ ├── values-nl
│ └── strings.xml
│ ├── values-pa-rIN
│ └── strings.xml
│ ├── values-pl
│ └── strings.xml
│ ├── values-pt-rBR
│ └── strings.xml
│ ├── values-pt-rPT
│ └── strings.xml
│ ├── values-pt
│ └── strings.xml
│ ├── values-ro
│ └── strings.xml
│ ├── values-ru
│ └── strings.xml
│ ├── values-si-rLK
│ └── strings.xml
│ ├── values-sk
│ └── strings.xml
│ ├── values-sl
│ └── strings.xml
│ ├── values-sq-rAL
│ └── strings.xml
│ ├── values-sr
│ └── strings.xml
│ ├── values-sv
│ └── strings.xml
│ ├── values-sw
│ └── strings.xml
│ ├── values-ta-rIN
│ └── strings.xml
│ ├── values-te-rIN
│ └── strings.xml
│ ├── values-th
│ └── strings.xml
│ ├── values-tl
│ └── strings.xml
│ ├── values-tr
│ └── strings.xml
│ ├── values-uk
│ └── strings.xml
│ ├── values-ur-rPK
│ └── strings.xml
│ ├── values-uz-rUZ
│ └── strings.xml
│ ├── values-v11
│ └── styles.xml
│ ├── values-vi
│ └── strings.xml
│ ├── values-zh-rCN
│ └── strings.xml
│ ├── values-zh-rHK
│ └── strings.xml
│ ├── values-zh-rTW
│ └── strings.xml
│ ├── values-zu
│ └── strings.xml
│ └── values
│ ├── attrs.xml
│ ├── constants.xml
│ ├── ids.xml
│ ├── strings.xml
│ └── styles.xml
├── 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/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | .externalNativeBuild
10 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
20 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # videoEditor
2 | MediaCodec实现视频编辑
3 |
4 | 主要实现功能如下:
5 |
6 | 1. EXOPlayer播放
7 | 2. MediaCodec实现编解码视频
8 | 3. 剪切视频并通过MediaMuxer保存
9 | 3. 保存的时候,通过openGL添加一个背景
10 | 4. 背景随着当前视频播放时时变化
11 |
12 | [Demo下载](https://github.com/TryLoveCatch/videoEditor/blob/master/app-debug.apk?raw=true)
13 |
--------------------------------------------------------------------------------
/app-debug.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/app-debug.apk
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 25
5 | buildToolsVersion "25.0.3"
6 | defaultConfig {
7 | applicationId "com.estrongs.android.pop.video"
8 | minSdkVersion 21
9 | targetSdkVersion 25
10 | versionCode 1
11 | versionName "1.0"
12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(dir: 'libs', include: ['*.jar'])
24 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
25 | exclude group: 'com.android.support', module: 'support-annotations'
26 | })
27 | compile 'com.android.support:appcompat-v7:25.3.1'
28 | // compile 'com.android.support:support-v4:25.3.1'
29 | compile 'com.android.support:design:25.3.1'
30 | testCompile 'junit:junit:4.12'
31 | compile project(path: ':exoplayer_ui')
32 | }
33 |
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in D:\android\android-sdk-windows/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
19 | # Uncomment this to preserve the line number information for
20 | # debugging stack traces.
21 | #-keepattributes SourceFile,LineNumberTable
22 |
23 | # If you keep the line number information, uncomment this to
24 | # hide the original source file name.
25 | #-renamesourcefileattribute SourceFile
26 |
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/estrongs/android/pop/video/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumentation test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() throws Exception {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("com.estrongs.android.pop.video", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/java/com/estrongs/android/pop/video/IUI.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video;
2 |
3 | interface IUI {
4 |
5 | /**
6 | * 初始化view属性,在此之前已通过ButterKnife初始化view
7 | * @Title: initViewProperty
8 | * @return void
9 | * @date Apr 18, 2014 11:00:56 AM
10 | */
11 | void initViewProperty();
12 |
13 | /**
14 | * 初始化数据请求相关
15 | * @Title: initData
16 | * @return void
17 | * @date Apr 24, 2014 10:38:59 AM
18 | */
19 | void initData();
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/java/com/estrongs/android/pop/video/MyApplication.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video;
2 |
3 | import com.estrongs.android.pop.video.util.AndroidUtil;
4 |
5 | import android.app.Application;
6 |
7 | /**
8 | * Created by lipeng21 on 2017/6/27.
9 | */
10 |
11 | public class MyApplication extends Application{
12 |
13 | public static MyApplication mInstance;
14 |
15 | @Override
16 | public void onCreate() {
17 | super.onCreate();
18 | mInstance = this;
19 | AndroidUtil.init(this);
20 |
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/estrongs/android/pop/video/edit/EditCacheManager.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video.edit;
2 |
3 | import java.util.HashMap;
4 | import java.util.Map;
5 |
6 | /**
7 | * Created by lipeng21 on 2017/6/27.
8 | */
9 |
10 | public class EditCacheManager {
11 | private static volatile EditCacheManager mInstance;
12 | private Map mMapCaches;
13 | private EditCacheManager(){
14 | mMapCaches = new HashMap<>();
15 | }
16 | public static EditCacheManager getInstance(){
17 | if(mInstance==null){
18 | synchronized (EditCacheManager.class){
19 | if(mInstance==null){
20 | mInstance = new EditCacheManager();
21 | }
22 | }
23 | }
24 | return mInstance;
25 | }
26 |
27 | public void addManager(String pSrcPath, EditManager pManager){
28 | if(mMapCaches.containsKey(pSrcPath)){
29 | throw new RuntimeException("该路径已经存在");
30 | }
31 |
32 | mMapCaches.put(pSrcPath, pManager);
33 | }
34 |
35 | public EditManager getManager(String pSrcPath){
36 | return mMapCaches.get(pSrcPath);
37 | }
38 |
39 | public void removeManager(String pSrcPath){
40 | mMapCaches.remove(pSrcPath);
41 | }
42 |
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/app/src/main/java/com/estrongs/android/pop/video/edit/muxer/IMuxerController.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video.edit.muxer;
2 |
3 | /**
4 | * Created by lipeng21 on 2017/6/28.
5 | */
6 |
7 | public interface IMuxerController {
8 |
9 | boolean isDropFrame(long presentationTime);
10 | }
11 |
--------------------------------------------------------------------------------
/app/src/main/java/com/estrongs/android/pop/video/edit/muxer/MediaError.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video.edit.muxer;
2 |
3 | /**
4 | * Created by lipeng21 on 2017/6/29.
5 | */
6 |
7 | public class MediaError {
8 | public static final int CODE_NO_AUDIO = 1;
9 | public static final int CODE_NO_VIDEO = 2;
10 | public static final int CODE_UNKNOWN = -1;
11 |
12 | public int code;
13 | public String msg;
14 |
15 | public MediaError(String msg){
16 | this.code = CODE_UNKNOWN;
17 | this.msg = msg;
18 | }
19 | public MediaError(int code, String msg){
20 | this.code = code;
21 | this.msg = msg;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/com/estrongs/android/pop/video/edit/muxer/ProgressListener.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video.edit.muxer;
2 |
3 | public interface ProgressListener {
4 |
5 | void onStart();
6 | void onProgress(int progress);
7 | void onCompleted();
8 | void onError();
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/main/java/com/estrongs/android/pop/video/edit/overlay/DrawOverlayView.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video.edit.overlay;
2 |
3 | import java.util.List;
4 |
5 | import android.content.Context;
6 | import android.support.annotation.Nullable;
7 | import android.util.AttributeSet;
8 | import android.view.View;
9 |
10 | /**
11 | * Created by lipeng21 on 2017/6/30.
12 | */
13 |
14 | public class DrawOverlayView extends View{
15 |
16 | private List mArrViews;
17 |
18 | public DrawOverlayView(Context context) {
19 | super(context);
20 | }
21 |
22 | public DrawOverlayView(Context context, @Nullable AttributeSet attrs) {
23 | super(context, attrs);
24 | }
25 |
26 | public DrawOverlayView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
27 | super(context, attrs, defStyleAttr);
28 | }
29 |
30 | public DrawOverlayView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
31 | super(context, attrs, defStyleAttr, defStyleRes);
32 | }
33 |
34 |
35 |
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/java/com/estrongs/android/pop/video/edit/overlay/OverlayDrawer.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video.edit.overlay;
2 |
3 | import android.graphics.Canvas;
4 | import android.graphics.Paint;
5 |
6 | /**
7 | * 两个地方会调用
8 | *
9 | * 1、预览
10 | * 2、合成
11 | *
12 | * 所以需要传入Canvas,这样我只用画就可以
13 | * 不用关心是在那里绘制的
14 | *
15 | */
16 | public interface OverlayDrawer {
17 |
18 | int DRAW_EMPTY = 0;
19 | int DRAW_SAME = 1;
20 | int DRAW_CHANGED = 2;
21 |
22 | int drawImage(long pts, Canvas canvas, Paint paint);
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/com/estrongs/android/pop/video/filter/IVideoFilter.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video.filter;
2 |
3 | public interface IVideoFilter {
4 | void init();
5 | int getProgram();
6 | void applyFilter(long pts);
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/java/com/estrongs/android/pop/video/filter/VideoFilterProvider.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video.filter;
2 |
3 | public class VideoFilterProvider {
4 |
5 | public IVideoFilter getFilter(long pts) {
6 | return null;
7 | }
8 |
9 | public void initFilters() {
10 |
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/estrongs/android/pop/video/opengl/FrameRender.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video.opengl;
2 |
3 | /**
4 | * Created by lipeng21 on 2017/6/28.
5 | */
6 |
7 | public class FrameRender {
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/java/com/estrongs/android/pop/video/opengl/OverlayRender.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video.opengl;
2 |
3 | /**
4 | * Created by lipeng21 on 2017/6/28.
5 | */
6 |
7 | public class OverlayRender {
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/java/com/estrongs/android/pop/video/util/FileUtil.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video.util;
2 |
3 | import java.io.File;
4 |
5 | public class FileUtil {
6 |
7 | public static boolean makeSureFolderOfFileExist(String path) {
8 | int pos = path.lastIndexOf("/");
9 | String folder = path.substring(0, pos);
10 | return makeSureFolderExist(folder);
11 | }
12 |
13 | public static boolean makeSureFolderExist(String path) {
14 | File dir = new File(path);
15 |
16 | if (!dir.exists()) {
17 | return dir.mkdirs();
18 | } else {
19 | return dir.isDirectory();
20 | }
21 |
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/chevron_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/app/src/main/res/drawable/chevron_left.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/fengj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/app/src/main/res/drawable/fengj.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/icon_handle_transparent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/app/src/main/res/drawable/icon_handle_transparent.png
--------------------------------------------------------------------------------
/app/src/main/res/layout/cut.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
20 |
21 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_edit.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_main.xml:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/raw/simple_fragment_shader2.glsl:
--------------------------------------------------------------------------------
1 | #extension GL_OES_EGL_image_external : require
2 | precision mediump float;
3 | //uniform sampler2D u_Texture;
4 | uniform samplerExternalOES u_Texture;
5 |
6 | varying vec2 v_Coordinate;
7 |
8 | void main()
9 | {
10 | gl_FragColor = texture2D(u_Texture,v_Coordinate);
11 | }
--------------------------------------------------------------------------------
/app/src/main/res/raw/simple_vertex_shader2.glsl:
--------------------------------------------------------------------------------
1 | uniform mat4 u_Matrix;
2 | attribute vec4 a_Position;
3 | attribute vec2 a_Coordinate;
4 |
5 | varying vec2 v_Coordinate;
6 |
7 | void main()
8 | {
9 | v_Coordinate = a_Coordinate;
10 | gl_Position = u_Matrix * a_Position;
11 | }
--------------------------------------------------------------------------------
/app/src/main/res/raw/videoeditor_fragment_shader.glsl:
--------------------------------------------------------------------------------
1 | #extension GL_OES_EGL_image_external : require
2 | precision mediump float;
3 | varying vec2 vTextureCoord;
4 | varying vec2 vOverlayCoord;
5 | uniform samplerExternalOES sTexture;
6 | uniform sampler2D oTexture;
7 | uniform int overlayFlag;
8 | /*uniforms*/
9 |
10 | vec4 makeOverlayColor() {
11 | vec4 fg_color = texture2D(oTexture, vOverlayCoord);
12 | float colorR = (1.0 - fg_color.a) * gl_FragColor.r + fg_color.a * fg_color.r;
13 | float colorG = (1.0 - fg_color.a) * gl_FragColor.g + fg_color.a * fg_color.g;
14 | float colorB = (1.0 - fg_color.a) * gl_FragColor.b + fg_color.a * fg_color.b;
15 | gl_FragColor = vec4(colorR, colorG, colorB, gl_FragColor.a);
16 | return gl_FragColor;
17 | }
18 |
19 | /*begin*/
20 | int applyFilter() {
21 | gl_FragColor = texture2D(sTexture, vTextureCoord);
22 | return 0;
23 | }
24 | /*end*/
25 |
26 | void main() {
27 |
28 | applyFilter();
29 |
30 |
31 | int hasOverly = overlayFlag; //uniform int 必须先赋给local变量,才算被使用,不会被优化调
32 | if (hasOverly > 0)
33 | makeOverlayColor();
34 | }
35 |
36 |
37 |
--------------------------------------------------------------------------------
/app/src/main/res/raw/videoeditor_verctex_shader.glsl:
--------------------------------------------------------------------------------
1 | uniform mat4 uMVPMatrix;
2 | uniform mat4 uSTMatrix;
3 | attribute vec4 aPosition;
4 | attribute vec4 aTextureCoord;
5 | attribute vec4 aOverlayCoord;
6 | varying vec2 vTextureCoord;
7 | varying vec2 vOverlayCoord;
8 |
9 | void main() {
10 | gl_Position = uMVPMatrix * aPosition;
11 | vTextureCoord = (uSTMatrix * aTextureCoord).xy;
12 | vOverlayCoord = (uSTMatrix * aOverlayCoord).xy;
13 | }
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #00000000
4 |
5 | #F44336
6 | #D32F2F
7 | #FF5252
8 | #212121
9 | #757575
10 | #FFFFFF
11 | #BDBDBD
12 |
13 | #ff777777
14 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | videoEditor
3 |
4 |
--------------------------------------------------------------------------------
/app/src/test/java/com/estrongs/android/pop/video/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.estrongs.android.pop.video;
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() throws Exception {
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 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.3.1'
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 | jcenter()
18 | }
19 | }
20 |
21 | task clean(type: Delete) {
22 | delete rootProject.buildDir
23 | }
24 |
--------------------------------------------------------------------------------
/exoplayer_core/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | .externalNativeBuild
10 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/flv/sample.flv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/flv/sample.flv
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mkv/sample.mkv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/mkv/sample.mkv
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mkv/subsample_encrypted_altref.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/mkv/subsample_encrypted_altref.webm
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mkv/subsample_encrypted_altref.webm.0.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = false
3 | duration = 1000
4 | getPosition(0) = 0
5 | numberOfTracks = 1
6 | track 1:
7 | format:
8 | bitrate = -1
9 | id = 1
10 | containerMimeType = null
11 | sampleMimeType = video/x-vnd.on2.vp9
12 | maxInputSize = -1
13 | width = 360
14 | height = 240
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = 1.0
18 | channelCount = -1
19 | sampleRate = -1
20 | pcmEncoding = -1
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = 1305012705
27 | initializationData:
28 | sample count = 1
29 | sample 0:
30 | time = 0
31 | flags = 1073741824
32 | data = length 39, hash B7FE77F4
33 | encryption key = length 16, hash 4CE944CF
34 | tracksEnded = true
35 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mkv/subsample_encrypted_noaltref.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/mkv/subsample_encrypted_noaltref.webm
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mkv/subsample_encrypted_noaltref.webm.0.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = false
3 | duration = 1000
4 | getPosition(0) = 0
5 | numberOfTracks = 1
6 | track 1:
7 | format:
8 | bitrate = -1
9 | id = 1
10 | containerMimeType = null
11 | sampleMimeType = video/x-vnd.on2.vp9
12 | maxInputSize = -1
13 | width = 360
14 | height = 240
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = 1.0
18 | channelCount = -1
19 | sampleRate = -1
20 | pcmEncoding = -1
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = 1305012705
27 | initializationData:
28 | sample count = 1
29 | sample 0:
30 | time = 0
31 | flags = 1073741824
32 | data = length 24, hash E58668B1
33 | encryption key = length 16, hash 4CE944CF
34 | tracksEnded = true
35 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mp3/bear.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/mp3/bear.mp3
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mp3/bear.mp3.3.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = true
3 | duration = 2784000
4 | getPosition(0) = 201
5 | numberOfTracks = 1
6 | track 0:
7 | format:
8 | bitrate = -1
9 | id = null
10 | containerMimeType = null
11 | sampleMimeType = audio/mpeg
12 | maxInputSize = 4096
13 | width = -1
14 | height = -1
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = -1.0
18 | channelCount = 2
19 | sampleRate = 48000
20 | pcmEncoding = -1
21 | encoderDelay = 956
22 | encoderPadding = 3352
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = -
27 | initializationData:
28 | sample count = 0
29 | tracksEnded = true
30 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mp3/play-trimmed.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/mp3/play-trimmed.mp3
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mp3/play-trimmed.mp3.0.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = true
3 | duration = 26125
4 | getPosition(0) = 0
5 | numberOfTracks = 1
6 | track 0:
7 | format:
8 | bitrate = -1
9 | id = null
10 | containerMimeType = null
11 | sampleMimeType = audio/mpeg
12 | maxInputSize = 4096
13 | width = -1
14 | height = -1
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = -1.0
18 | channelCount = 2
19 | sampleRate = 44100
20 | pcmEncoding = -1
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = -
27 | initializationData:
28 | sample count = 1
29 | sample 0:
30 | time = 0
31 | flags = 1
32 | data = length 418, hash B819987
33 | tracksEnded = true
34 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mp3/play-trimmed.mp3.1.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = true
3 | duration = 26125
4 | getPosition(0) = 0
5 | numberOfTracks = 1
6 | track 0:
7 | format:
8 | bitrate = -1
9 | id = null
10 | containerMimeType = null
11 | sampleMimeType = audio/mpeg
12 | maxInputSize = 4096
13 | width = -1
14 | height = -1
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = -1.0
18 | channelCount = 2
19 | sampleRate = 44100
20 | pcmEncoding = -1
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = -
27 | initializationData:
28 | sample count = 0
29 | tracksEnded = true
30 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mp3/play-trimmed.mp3.2.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = true
3 | duration = 26125
4 | getPosition(0) = 0
5 | numberOfTracks = 1
6 | track 0:
7 | format:
8 | bitrate = -1
9 | id = null
10 | containerMimeType = null
11 | sampleMimeType = audio/mpeg
12 | maxInputSize = 4096
13 | width = -1
14 | height = -1
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = -1.0
18 | channelCount = 2
19 | sampleRate = 44100
20 | pcmEncoding = -1
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = -
27 | initializationData:
28 | sample count = 0
29 | tracksEnded = true
30 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mp3/play-trimmed.mp3.3.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = true
3 | duration = 26125
4 | getPosition(0) = 0
5 | numberOfTracks = 1
6 | track 0:
7 | format:
8 | bitrate = -1
9 | id = null
10 | containerMimeType = null
11 | sampleMimeType = audio/mpeg
12 | maxInputSize = 4096
13 | width = -1
14 | height = -1
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = -1.0
18 | channelCount = 2
19 | sampleRate = 44100
20 | pcmEncoding = -1
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = -
27 | initializationData:
28 | sample count = 0
29 | tracksEnded = true
30 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mp3/play-trimmed.mp3.unklen.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = false
3 | duration = UNSET TIME
4 | getPosition(0) = 0
5 | numberOfTracks = 1
6 | track 0:
7 | format:
8 | bitrate = -1
9 | id = null
10 | containerMimeType = null
11 | sampleMimeType = audio/mpeg
12 | maxInputSize = 4096
13 | width = -1
14 | height = -1
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = -1.0
18 | channelCount = 2
19 | sampleRate = 44100
20 | pcmEncoding = -1
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = -
27 | initializationData:
28 | sample count = 1
29 | sample 0:
30 | time = 0
31 | flags = 1
32 | data = length 418, hash B819987
33 | tracksEnded = true
34 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mp4/sample.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/mp4/sample.mp4
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mp4/sample_fragmented.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/mp4/sample_fragmented.mp4
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mp4/sample_fragmented_sei.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/mp4/sample_fragmented_sei.mp4
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/mp4/sample_fragmented_zero_size_atom.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/mp4/sample_fragmented_zero_size_atom.mp4
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ogg/bear.opus:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/ogg/bear.opus
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ogg/bear.opus.3.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = true
3 | duration = 2747500
4 | getPosition(0) = 125
5 | numberOfTracks = 1
6 | track 0:
7 | format:
8 | bitrate = -1
9 | id = null
10 | containerMimeType = null
11 | sampleMimeType = audio/opus
12 | maxInputSize = -1
13 | width = -1
14 | height = -1
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = -1.0
18 | channelCount = 2
19 | sampleRate = 48000
20 | pcmEncoding = -1
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = -
27 | initializationData:
28 | data = length 19, hash BFE794DB
29 | data = length 8, hash CA22068C
30 | data = length 8, hash 79C07075
31 | sample count = 1
32 | sample 0:
33 | time = 2741000
34 | flags = 1
35 | data = length 126, hash 505E117B
36 | tracksEnded = true
37 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ogg/bear_flac.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/ogg/bear_flac.ogg
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ogg/bear_flac.ogg.3.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = true
3 | duration = 2741000
4 | getPosition(0) = 8457
5 | numberOfTracks = 1
6 | track 0:
7 | format:
8 | bitrate = -1
9 | id = null
10 | containerMimeType = null
11 | sampleMimeType = audio/x-flac
12 | maxInputSize = 768000
13 | width = -1
14 | height = -1
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = -1.0
18 | channelCount = 2
19 | sampleRate = 48000
20 | pcmEncoding = -1
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = -
27 | initializationData:
28 | data = length 42, hash 83F6895
29 | sample count = 1
30 | sample 0:
31 | time = 2730666
32 | flags = 1
33 | data = length 445, hash A388E3D6
34 | tracksEnded = true
35 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ogg/bear_flac_noseektable.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/ogg/bear_flac_noseektable.ogg
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ogg/bear_flac_noseektable.ogg.3.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = true
3 | duration = 2741000
4 | getPosition(0) = 8407
5 | numberOfTracks = 1
6 | track 0:
7 | format:
8 | bitrate = -1
9 | id = null
10 | containerMimeType = null
11 | sampleMimeType = audio/x-flac
12 | maxInputSize = 768000
13 | width = -1
14 | height = -1
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = -1.0
18 | channelCount = 2
19 | sampleRate = 48000
20 | pcmEncoding = -1
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = -
27 | initializationData:
28 | data = length 42, hash 83F6895
29 | sample count = 1
30 | sample 0:
31 | time = 2730666
32 | flags = 1
33 | data = length 445, hash A388E3D6
34 | tracksEnded = true
35 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ogg/bear_vorbis.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/ogg/bear_vorbis.ogg
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ogg/bear_vorbis.ogg.3.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = true
3 | duration = 2741000
4 | getPosition(0) = 3995
5 | numberOfTracks = 1
6 | track 0:
7 | format:
8 | bitrate = 112000
9 | id = null
10 | containerMimeType = null
11 | sampleMimeType = audio/vorbis
12 | maxInputSize = 65025
13 | width = -1
14 | height = -1
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = -1.0
18 | channelCount = 2
19 | sampleRate = 48000
20 | pcmEncoding = -1
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = -
27 | initializationData:
28 | data = length 30, hash 9A8FF207
29 | data = length 3832, hash 8A406249
30 | sample count = 0
31 | tracksEnded = true
32 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/rawcc/sample.rawcc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/rawcc/sample.rawcc
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/subrip/empty:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/subrip/empty
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/subrip/no_end_timecodes:
--------------------------------------------------------------------------------
1 | 1
2 | 00:00:00,000 -->
3 | SubRip doesn't technically allow missing end timecodes.
4 |
5 | 2
6 | 00:00:02,345 -->
7 | We interpret it to mean that a subtitle extends to the start of the next one.
8 |
9 | 3
10 | 00:00:03,456 -->
11 | Or to the end of the media.
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/subrip/typical:
--------------------------------------------------------------------------------
1 | 1
2 | 00:00:00,000 --> 00:00:01,234
3 | This is the first subtitle.
4 |
5 | 2
6 | 00:00:02,345 --> 00:00:03,456
7 | This is the second subtitle.
8 | Second subtitle with second line.
9 |
10 | 3
11 | 00:00:04,567 --> 00:00:08,901
12 | This is the third subtitle.
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/subrip/typical_extra_blank_line:
--------------------------------------------------------------------------------
1 | 1
2 | 00:00:00,000 --> 00:00:01,234
3 | This is the first subtitle.
4 |
5 |
6 | 2
7 | 00:00:02,345 --> 00:00:03,456
8 | This is the second subtitle.
9 | Second subtitle with second line.
10 |
11 | 3
12 | 00:00:04,567 --> 00:00:08,901
13 | This is the third subtitle.
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/subrip/typical_missing_sequence:
--------------------------------------------------------------------------------
1 | 1
2 | 00:00:00,000 --> 00:00:01,234
3 | This is the first subtitle.
4 |
5 | 00:00:02,345 --> 00:00:03,456
6 | This is the second subtitle.
7 | Second subtitle with second line.
8 |
9 | 3
10 | 00:00:04,567 --> 00:00:08,901
11 | This is the third subtitle.
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/subrip/typical_missing_timecode:
--------------------------------------------------------------------------------
1 | 1
2 | 00:00:00,000 --> 00:00:01,234
3 | This is the first subtitle.
4 |
5 | 2
6 | This is the second subtitle.
7 | Second subtitle with second line.
8 |
9 | 3
10 | 00:00:04,567 --> 00:00:08,901
11 | This is the third subtitle.
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/subrip/typical_negative_timestamps:
--------------------------------------------------------------------------------
1 | 1
2 | -0:00:04,567 --> -0:00:03,456
3 | This is the first subtitle.
4 |
5 | 2
6 | -00:00:02,345 --> 00:00:01,234
7 | This is the second subtitle.
8 | Second subtitle with second line.
9 |
10 | 3
11 | 00:00:04,567 --> 00:00:08,901
12 | This is the third subtitle.
13 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/subrip/typical_with_byte_order_mark:
--------------------------------------------------------------------------------
1 | 1
2 | 00:00:00,000 --> 00:00:01,234
3 | This is the first subtitle.
4 |
5 | 2
6 | 00:00:02,345 --> 00:00:03,456
7 | This is the second subtitle.
8 | Second subtitle with second line.
9 |
10 | 3
11 | 00:00:04,567 --> 00:00:08,901
12 | This is the third subtitle.
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ts/sample.ac3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/ts/sample.ac3
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ts/sample.adts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/ts/sample.adts
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ts/sample.ps:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/ts/sample.ps
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ts/sample.ts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/ts/sample.ts
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ts/sample_with_sdt.ts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/ts/sample_with_sdt.ts
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ttml/chain_multiple_styles.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
12 |
18 |
19 |
22 |
25 |
26 |
27 |
28 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ttml/font_size.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
10 |
12 |
13 |
14 |
15 |
18 |
21 |
24 |
27 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ttml/font_size_empty.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ttml/font_size_invalid.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
9 |
12 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ttml/font_size_no_unit.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ttml/frame_rate.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
14 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ttml/inherit_and_override_style.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
15 |
16 |
17 |
18 |
21 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ttml/inherit_style.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
15 |
16 |
17 |
18 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ttml/inline_style_attributes.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
16 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/ttml/no_underline_linethrough.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
9 |
11 |
12 |
13 |
14 |
17 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/tx3g/initialization:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/tx3g/initialization
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/tx3g/initialization_all_defaults:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/tx3g/initialization_all_defaults
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/tx3g/no_subtitle:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/tx3g/sample_just_text:
--------------------------------------------------------------------------------
1 | CC Test
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/tx3g/sample_utf16_be_no_styl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/tx3g/sample_utf16_be_no_styl
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/tx3g/sample_utf16_le_no_styl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/tx3g/sample_utf16_le_no_styl
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/tx3g/sample_with_multiple_styl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/tx3g/sample_with_multiple_styl
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/tx3g/sample_with_other_extension:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/tx3g/sample_with_other_extension
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/tx3g/sample_with_styl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/tx3g/sample_with_styl
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/tx3g/sample_with_styl_all_defaults:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/tx3g/sample_with_styl_all_defaults
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/tx3g/sample_with_tbox:
--------------------------------------------------------------------------------
1 | CC Test tbox Z <
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/wav/sample.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/wav/sample.wav
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/wav/sample.wav.0.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = true
3 | duration = 1000000
4 | getPosition(0) = 78
5 | numberOfTracks = 1
6 | track 0:
7 | format:
8 | bitrate = 705600
9 | id = null
10 | containerMimeType = null
11 | sampleMimeType = audio/raw
12 | maxInputSize = 32768
13 | width = -1
14 | height = -1
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = -1.0
18 | channelCount = 1
19 | sampleRate = 44100
20 | pcmEncoding = 2
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = -
27 | initializationData:
28 | sample count = 3
29 | sample 0:
30 | time = 884
31 | flags = 1
32 | data = length 32768, hash 9A8CEEBA
33 | sample 1:
34 | time = 372403
35 | flags = 1
36 | data = length 32768, hash C1717317
37 | sample 2:
38 | time = 743922
39 | flags = 1
40 | data = length 22664, hash 819F5F62
41 | tracksEnded = true
42 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/wav/sample.wav.1.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = true
3 | duration = 1000000
4 | getPosition(0) = 78
5 | numberOfTracks = 1
6 | track 0:
7 | format:
8 | bitrate = 705600
9 | id = null
10 | containerMimeType = null
11 | sampleMimeType = audio/raw
12 | maxInputSize = 32768
13 | width = -1
14 | height = -1
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = -1.0
18 | channelCount = 1
19 | sampleRate = 44100
20 | pcmEncoding = 2
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = -
27 | initializationData:
28 | sample count = 2
29 | sample 0:
30 | time = 334195
31 | flags = 1
32 | data = length 32768, hash 42D6E860
33 | sample 1:
34 | time = 705714
35 | flags = 1
36 | data = length 26034, hash 62692C38
37 | tracksEnded = true
38 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/wav/sample.wav.2.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = true
3 | duration = 1000000
4 | getPosition(0) = 78
5 | numberOfTracks = 1
6 | track 0:
7 | format:
8 | bitrate = 705600
9 | id = null
10 | containerMimeType = null
11 | sampleMimeType = audio/raw
12 | maxInputSize = 32768
13 | width = -1
14 | height = -1
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = -1.0
18 | channelCount = 1
19 | sampleRate = 44100
20 | pcmEncoding = 2
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = -
27 | initializationData:
28 | sample count = 1
29 | sample 0:
30 | time = 667528
31 | flags = 1
32 | data = length 29402, hash 4241604E
33 | tracksEnded = true
34 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/wav/sample.wav.3.dump:
--------------------------------------------------------------------------------
1 | seekMap:
2 | isSeekable = true
3 | duration = 1000000
4 | getPosition(0) = 78
5 | numberOfTracks = 1
6 | track 0:
7 | format:
8 | bitrate = 705600
9 | id = null
10 | containerMimeType = null
11 | sampleMimeType = audio/raw
12 | maxInputSize = 32768
13 | width = -1
14 | height = -1
15 | frameRate = -1.0
16 | rotationDegrees = -1
17 | pixelWidthHeightRatio = -1.0
18 | channelCount = 1
19 | sampleRate = 44100
20 | pcmEncoding = 2
21 | encoderDelay = -1
22 | encoderPadding = -1
23 | subsampleOffsetUs = 9223372036854775807
24 | selectionFlags = 0
25 | language = null
26 | drmInitData = -
27 | initializationData:
28 | sample count = 1
29 | sample 0:
30 | time = 1000861
31 | flags = 1
32 | data = length 2, hash 116
33 | tracksEnded = true
34 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/webm/vorbis_codec_private:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_core/src/androidTest/assets/webm/vorbis_codec_private
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/webvtt/empty:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/webvtt/typical:
--------------------------------------------------------------------------------
1 | WEBVTT # This comment is allowed
2 |
3 | 00:00.000 --> 00:01.234
4 | This is the first subtitle.
5 |
6 | 00:02.345 --> 00:03.456
7 | This is the second subtitle.
8 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/webvtt/typical_with_comments:
--------------------------------------------------------------------------------
1 | WEBVTT
2 |
3 | NOTE
4 | This is a comment block
5 | with multiple lines
6 |
7 | 1
8 | 00:00.000 --> 00:01.234
9 | This is the first subtitle.
10 |
11 | NOTE Single line comment with a space
12 |
13 | NOTE Single line comment with a tab
14 |
15 | 2
16 | 00:02.345 --> 00:03.456
17 | This is the second subtitle.
18 |
19 | NOTE
20 | File ending with a comment
21 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/webvtt/typical_with_identifiers:
--------------------------------------------------------------------------------
1 | WEBVTT
2 |
3 | 1
4 | 00:00.000 --> 00:01.234
5 | This is the first subtitle.
6 |
7 | 2
8 | 00:02.345 --> 00:03.456
9 | This is the second subtitle.
10 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/webvtt/with_bad_cue_header:
--------------------------------------------------------------------------------
1 | WEBVTT # This comment is allowed
2 |
3 | 00:00.000 --> 00:01.234
4 | This is the first subtitle.
5 |
6 | 00:02.badbadbadbadbadbad --> 00:03.456
7 | This is the second subtitle.
8 |
9 | 00:04.000 --> 00:05.000
10 | This is the third subtitle.
11 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/webvtt/with_css_complex_selectors:
--------------------------------------------------------------------------------
1 | WEBVTT
2 |
3 | STYLE
4 | ::cue(\n#id ){text-decoration:underline;}
5 |
6 | STYLE
7 | ::cue(#id.class1.class2 ){ color: violet;}
8 |
9 | STYLE
10 | ::cue(lang){font-family:Courier}
11 |
12 | STYLE
13 | ::cue(.class.another ){font-weight: bold;}
14 |
15 | STYLE
16 | ::cue(v.class[voice="Strider Trancos"] ){ font-weight:bold; }
17 |
18 | STYLE
19 | ::cue(v#anId.class1.class2[voice="Robert"] ){ font-style:italic; }
20 |
21 | id
22 | 00:00.000 --> 00:01.001
23 | This should be underlined and courier and violet.
24 |
25 | íd
26 | 00:02.000 --> 00:02.001
27 | This should be just courier.
28 |
29 | _id
30 | 00:02.500 --> 00:02.501
31 | This should be courier and bold.
32 |
33 | 00:04.000 --> 00:04.001
34 | This shouldn't be bold.
35 | This should be bold.
36 |
37 | anId
38 | 00:05.000 --> 00:05.001
39 | This is specific
40 | But this is more italic
41 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/webvtt/with_css_styles:
--------------------------------------------------------------------------------
1 | WEBVTT
2 |
3 | STYLE
4 | ::cue {
5 | background-color: green;
6 | color: papayawhip;
7 | }
8 | /* Style blocks cannot use blank lines nor "dash dash greater than" */
9 |
10 | NOTE comment blocks can be used between style blocks.
11 |
12 | STYLE
13 | ::cue(#id2) {
14 | color: peachpuff;
15 | }
16 |
17 | STYLE
18 | ::cue(v[voice="LaGord"]) { background-color: lime }
19 |
20 | STYLE
21 | ::cue(v[voice="The Frog"]) { font-weight: bold }
22 |
23 | STYLE
24 | ::cue(v){text-decoration:underline}
25 |
26 | id1
27 | 00:00.000 --> 00:01.234
28 | This is the first subtitle.
29 |
30 | id2
31 | 00:02.345 --> 00:03.456
32 | This is the second subtitle.
33 |
34 | 00:20.000 --> 00:21.000
35 | This is a reference by element
36 |
37 | 00:25.000 --> 00:28.000
38 | You are an idiot
39 | You don't have the guts
40 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/webvtt/with_positioning:
--------------------------------------------------------------------------------
1 | WEBVTT
2 |
3 | NOTE Position with percentage and position alignment
4 |
5 | 00:00:00.000 --> 00:00:01.234 position:10%,start align:start size:35%
6 | This is the first subtitle.
7 |
8 | NOTE Wrong position provided. It should be provided as
9 | a percentage value
10 |
11 | 00:02.345 --> 00:03.456 position:10 align:end size:35%
12 | This is the second subtitle.
13 |
14 | NOTE Line as percentage and line alignment
15 |
16 | 00:04.000 --> 00:05.000 line:45%,end align:middle size:35%
17 | This is the third subtitle.
18 |
19 | NOTE Line as absolute negative number and without line alignment.
20 |
21 | 00:06.000 --> 00:07.000 line:-10 align:middle
22 | This is the fourth subtitle.
23 |
24 | NOTE The positioning alignment should be inherited from align.
25 |
26 | 00:07.000 --> 00:08.000 position:10% align:end size:10%
27 | This is the fifth subtitle.
28 |
29 | NOTE In newer drafts, align:middle has been replaced by align:center
30 |
31 | 00:10.000 --> 00:11.000 line:45%,end align:center size:35%
32 | This is the sixth subtitle.
33 |
34 |
--------------------------------------------------------------------------------
/exoplayer_core/src/androidTest/assets/webvtt/with_tags:
--------------------------------------------------------------------------------
1 | WEBVTT
2 |
3 | 00:00.000 --> 00:01.234
4 | This is the first subtitle.
5 |
6 | 00:02.345 --> 00:03.456
7 | This is the second subtitle.
8 |
9 | 00:04.000 --> 00:05.000
10 | This is the third subtitle.
11 |
12 | 00:06.000 --> 00:07.000
13 | This is the <fourth> &subtitle.
14 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/FormatHolder.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 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 | package com.google.android.exoplayer2;
17 |
18 | /**
19 | * Holds a {@link Format}.
20 | */
21 | public final class FormatHolder {
22 |
23 | /**
24 | * The held {@link Format}.
25 | */
26 | public Format format;
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/drm/DecryptionException.java:
--------------------------------------------------------------------------------
1 | package com.google.android.exoplayer2.drm;
2 |
3 | /**
4 | * An exception when doing drm decryption using the In-App Drm
5 | */
6 | public class DecryptionException extends Exception {
7 | private final int errorCode;
8 |
9 | public DecryptionException(int errorCode, String message) {
10 | super(message);
11 | this.errorCode = errorCode;
12 | }
13 |
14 | /**
15 | * Get error code
16 | */
17 | public int getErrorCode() {
18 | return errorCode;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/drm/ExoMediaCrypto.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 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 | package com.google.android.exoplayer2.drm;
17 |
18 | /**
19 | * An opaque {@link android.media.MediaCrypto} equivalent.
20 | */
21 | public interface ExoMediaCrypto {
22 |
23 | /**
24 | * @see android.media.MediaCrypto#requiresSecureDecoderComponent(String)
25 | */
26 | boolean requiresSecureDecoderComponent(String mimeType);
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/drm/KeysExpiredException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 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 | package com.google.android.exoplayer2.drm;
17 |
18 | /**
19 | * Thrown when the drm keys loaded into an open session expire.
20 | */
21 | public final class KeysExpiredException extends Exception {
22 | }
23 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/extractor/ExtractorsFactory.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 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 | package com.google.android.exoplayer2.extractor;
17 |
18 | /**
19 | * Factory for arrays of {@link Extractor}s.
20 | */
21 | public interface ExtractorsFactory {
22 |
23 | /**
24 | * Returns an array of new {@link Extractor} instances.
25 | */
26 | Extractor[] createExtractors();
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/extractor/PositionHolder.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 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 | package com.google.android.exoplayer2.extractor;
17 |
18 | /**
19 | * Holds a position in the stream.
20 | */
21 | public final class PositionHolder {
22 |
23 | /**
24 | * The held position.
25 | */
26 | public long position;
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/extractor/mp4/DefaultSampleValues.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 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 | package com.google.android.exoplayer2.extractor.mp4;
17 |
18 | /* package */ final class DefaultSampleValues {
19 |
20 | public final int sampleDescriptionIndex;
21 | public final int duration;
22 | public final int size;
23 | public final int flags;
24 |
25 | public DefaultSampleValues(int sampleDescriptionIndex, int duration, int size, int flags) {
26 | this.sampleDescriptionIndex = sampleDescriptionIndex;
27 | this.duration = duration;
28 | this.size = size;
29 | this.flags = flags;
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/metadata/MetadataDecoder.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 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 | package com.google.android.exoplayer2.metadata;
17 |
18 | /**
19 | * Decodes metadata from binary data.
20 | */
21 | public interface MetadataDecoder {
22 |
23 | /**
24 | * Decodes a {@link Metadata} element from the provided input buffer.
25 | *
26 | * @param inputBuffer The input buffer to decode.
27 | * @return The decoded metadata object.
28 | * @throws MetadataDecoderException If a problem occurred decoding the data.
29 | */
30 | Metadata decode(MetadataInputBuffer inputBuffer) throws MetadataDecoderException;
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/metadata/id3/Id3Frame.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 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 | package com.google.android.exoplayer2.metadata.id3;
17 |
18 | import com.google.android.exoplayer2.metadata.Metadata;
19 | import com.google.android.exoplayer2.util.Assertions;
20 |
21 | /**
22 | * Base class for ID3 frames.
23 | */
24 | public abstract class Id3Frame implements Metadata.Entry {
25 |
26 | /**
27 | * The frame ID.
28 | */
29 | public final String id;
30 |
31 | public Id3Frame(String id) {
32 | this.id = Assertions.checkNotNull(id);
33 | }
34 |
35 | @Override
36 | public int describeContents() {
37 | return 0;
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/metadata/scte35/SpliceCommand.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 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 | package com.google.android.exoplayer2.metadata.scte35;
17 |
18 | import com.google.android.exoplayer2.metadata.Metadata;
19 |
20 | /**
21 | * Superclass for SCTE35 splice commands.
22 | */
23 | public abstract class SpliceCommand implements Metadata.Entry {
24 |
25 | @Override
26 | public int describeContents() {
27 | return 0;
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/source/BehindLiveWindowException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 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 | package com.google.android.exoplayer2.source;
17 |
18 | import java.io.IOException;
19 |
20 | /**
21 | * Thrown when a live playback falls behind the available media window.
22 | */
23 | public final class BehindLiveWindowException extends IOException {
24 |
25 | public BehindLiveWindowException() {
26 | super();
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/source/chunk/ChunkHolder.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 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 | package com.google.android.exoplayer2.source.chunk;
17 |
18 | /**
19 | * Holds a chunk or an indication that the end of the stream has been reached.
20 | */
21 | public final class ChunkHolder {
22 |
23 | /**
24 | * The chunk.
25 | */
26 | public Chunk chunk;
27 |
28 | /**
29 | * Indicates that the end of the stream has been reached.
30 | */
31 | public boolean endOfStream;
32 |
33 | /**
34 | * Clears the holder.
35 | */
36 | public void clear() {
37 | chunk = null;
38 | endOfStream = false;
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/util/Clock.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2014 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 | package com.google.android.exoplayer2.util;
17 |
18 | /**
19 | * An interface through which system clocks can be read. The {@link SystemClock} implementation
20 | * must be used for all non-test cases.
21 | */
22 | public interface Clock {
23 |
24 | /**
25 | * Returns {@link android.os.SystemClock#elapsedRealtime}.
26 | *
27 | * @return Elapsed milliseconds since boot.
28 | */
29 | long elapsedRealtime();
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/util/Predicate.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 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 | package com.google.android.exoplayer2.util;
17 |
18 | /**
19 | * Determines a true of false value for a given input.
20 | *
21 | * @param The input type of the predicate.
22 | */
23 | public interface Predicate {
24 |
25 | /**
26 | * Evaluates an input.
27 | *
28 | * @param input The input to evaluate.
29 | * @return The evaluated result.
30 | */
31 | boolean evaluate(T input);
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/exoplayer_core/src/main/java/com/google/android/exoplayer2/util/SystemClock.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2014 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 | package com.google.android.exoplayer2.util;
17 |
18 | /**
19 | * The standard implementation of {@link Clock}.
20 | */
21 | public final class SystemClock implements Clock {
22 |
23 | @Override
24 | public long elapsedRealtime() {
25 | return android.os.SystemClock.elapsedRealtime();
26 | }
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/exoplayer_ui/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | .externalNativeBuild
10 |
--------------------------------------------------------------------------------
/exoplayer_ui/build.gradle:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2016 The Android Open Source Project
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 | apply plugin: 'com.android.library'
15 |
16 | android {
17 | compileSdkVersion 25
18 | buildToolsVersion '25.0.0'
19 |
20 | defaultConfig {
21 | minSdkVersion 14
22 | targetSdkVersion 20
23 | }
24 |
25 | buildTypes {
26 | debug {
27 | testCoverageEnabled = true
28 | }
29 | }
30 | }
31 |
32 | dependencies {
33 | compile project(':exoplayer_core')
34 | compile 'com.android.support:support-annotations:25.3.1'
35 | }
36 |
37 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-anydpi-v21/exo_controls_fastforward.xml:
--------------------------------------------------------------------------------
1 |
15 |
20 |
21 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-anydpi-v21/exo_controls_next.xml:
--------------------------------------------------------------------------------
1 |
15 |
20 |
21 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-anydpi-v21/exo_controls_pause.xml:
--------------------------------------------------------------------------------
1 |
15 |
20 |
21 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-anydpi-v21/exo_controls_play.xml:
--------------------------------------------------------------------------------
1 |
15 |
20 |
21 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-anydpi-v21/exo_controls_previous.xml:
--------------------------------------------------------------------------------
1 |
15 |
20 |
21 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-anydpi-v21/exo_controls_rewind.xml:
--------------------------------------------------------------------------------
1 |
15 |
20 |
21 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-hdpi/exo_controls_fastforward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-hdpi/exo_controls_fastforward.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-hdpi/exo_controls_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-hdpi/exo_controls_next.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-hdpi/exo_controls_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-hdpi/exo_controls_pause.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-hdpi/exo_controls_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-hdpi/exo_controls_play.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-hdpi/exo_controls_previous.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-hdpi/exo_controls_previous.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-hdpi/exo_controls_rewind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-hdpi/exo_controls_rewind.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-ldpi/exo_controls_fastforward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-ldpi/exo_controls_fastforward.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-ldpi/exo_controls_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-ldpi/exo_controls_next.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-ldpi/exo_controls_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-ldpi/exo_controls_pause.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-ldpi/exo_controls_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-ldpi/exo_controls_play.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-ldpi/exo_controls_previous.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-ldpi/exo_controls_previous.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-ldpi/exo_controls_rewind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-ldpi/exo_controls_rewind.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-mdpi/exo_controls_fastforward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-mdpi/exo_controls_fastforward.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-mdpi/exo_controls_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-mdpi/exo_controls_next.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-mdpi/exo_controls_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-mdpi/exo_controls_pause.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-mdpi/exo_controls_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-mdpi/exo_controls_play.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-mdpi/exo_controls_previous.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-mdpi/exo_controls_previous.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-mdpi/exo_controls_rewind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-mdpi/exo_controls_rewind.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-xhdpi/exo_controls_fastforward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-xhdpi/exo_controls_fastforward.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-xhdpi/exo_controls_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-xhdpi/exo_controls_next.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-xhdpi/exo_controls_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-xhdpi/exo_controls_pause.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-xhdpi/exo_controls_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-xhdpi/exo_controls_play.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-xhdpi/exo_controls_previous.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-xhdpi/exo_controls_previous.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-xhdpi/exo_controls_rewind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-xhdpi/exo_controls_rewind.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-xxhdpi/exo_controls_fastforward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-xxhdpi/exo_controls_fastforward.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-xxhdpi/exo_controls_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-xxhdpi/exo_controls_next.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-xxhdpi/exo_controls_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-xxhdpi/exo_controls_pause.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-xxhdpi/exo_controls_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-xxhdpi/exo_controls_play.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-xxhdpi/exo_controls_previous.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-xxhdpi/exo_controls_previous.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/drawable-xxhdpi/exo_controls_rewind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/exoplayer_ui/src/main/res/drawable-xxhdpi/exo_controls_rewind.png
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-af/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Vorige snit"
19 | "Volgende snit"
20 | "Wag"
21 | "Speel"
22 | "Stop"
23 | "Spoel terug"
24 | "Vinnig vorentoe"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-am/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "ቀዳሚ ትራክ"
19 | "ቀጣይ ትራክ"
20 | "ለአፍታ አቁም"
21 | "አጫውት"
22 | "አቁም"
23 | "ወደኋላ አጠንጥን"
24 | "በፍጥነት አሳልፍ"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-ar/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "المقطع الصوتي السابق"
19 | "المقطع الصوتي التالي"
20 | "إيقاف مؤقت"
21 | "تشغيل"
22 | "إيقاف"
23 | "إرجاع"
24 | "تقديم سريع"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-az-rAZ/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Öncəki trek"
19 | "Növbəti trek"
20 | "Pauza"
21 | "Oyun"
22 | "Dayandır"
23 | "Geri sarıma"
24 | "Sürətlə irəli"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-b+sr+Latn/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Prethodna pesma"
19 | "Sledeća pesma"
20 | "Pauza"
21 | "Pusti"
22 | "Zaustavi"
23 | "Premotaj unazad"
24 | "Premotaj unapred"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-be-rBY/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Папярэдні трэк"
19 | "Наступны трэк"
20 | "Прыпыніць"
21 | "Прайграць"
22 | "Спыніць"
23 | "Перамотка назад"
24 | "Перамотка ўперад"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-bg/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Предишен запис"
19 | "Следващ запис"
20 | "Пауза"
21 | "Пускане"
22 | "Спиране"
23 | "Превъртане назад"
24 | "Превъртане напред"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-bn-rBD/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "পূর্ববর্তী ট্র্যাক"
19 | "পরবর্তী ট্র্যাক"
20 | "বিরাম দিন"
21 | "প্লে করুন"
22 | "থামান"
23 | "গুটিয়ে নিন"
24 | "দ্রুত সামনে এগোন"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-bs-rBA/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Prethodna numera"
19 | "Sljedeća numera"
20 | "Pauziraj"
21 | "Reproduciraj"
22 | "Zaustavi"
23 | "Premotaj"
24 | "Ubrzaj"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-ca/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Ruta anterior"
19 | "Ruta següent"
20 | "Posa en pausa"
21 | "Reprodueix"
22 | "Atura"
23 | "Rebobina"
24 | "Avança ràpidament"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-cs/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Předchozí skladba"
19 | "Další skladba"
20 | "Pozastavit"
21 | "Přehrát"
22 | "Zastavit"
23 | "Přetočit zpět"
24 | "Přetočit vpřed"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-da/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Forrige nummer"
19 | "Næste nummer"
20 | "Pause"
21 | "Afspil"
22 | "Stop"
23 | "Spol tilbage"
24 | "Spol frem"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-de/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Vorheriger Titel"
19 | "Nächster Titel"
20 | "Pausieren"
21 | "Wiedergabe"
22 | "Beenden"
23 | "Zurückspulen"
24 | "Vorspulen"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-el/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Προηγούμενο κομμάτι"
19 | "Επόμενο κομμάτι"
20 | "Παύση"
21 | "Αναπαραγωγή"
22 | "Διακοπή"
23 | "Επαναφορά"
24 | "Γρήγορη προώθηση"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-en-rAU/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Previous track"
19 | "Next track"
20 | "Pause"
21 | "Play"
22 | "Stop"
23 | "Rewind"
24 | "Fast-forward"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-en-rGB/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Previous track"
19 | "Next track"
20 | "Pause"
21 | "Play"
22 | "Stop"
23 | "Rewind"
24 | "Fast-forward"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-en-rIN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Previous track"
19 | "Next track"
20 | "Pause"
21 | "Play"
22 | "Stop"
23 | "Rewind"
24 | "Fast-forward"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-es-rUS/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Pista anterior"
19 | "Siguiente pista"
20 | "Pausar"
21 | "Reproducir"
22 | "Detener"
23 | "Retroceder"
24 | "Avanzar"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-es/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Canción anterior"
19 | "Siguiente canción"
20 | "Pausar"
21 | "Reproducir"
22 | "Detener"
23 | "Rebobinar"
24 | "Avance rápido"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-et-rEE/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Eelmine lugu"
19 | "Järgmine lugu"
20 | "Peata"
21 | "Esita"
22 | "Peata"
23 | "Keri tagasi"
24 | "Keri edasi"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-eu-rES/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Aurreko pista"
19 | "Hurrengo pista"
20 | "Pausatu"
21 | "Erreproduzitu"
22 | "Gelditu"
23 | "Atzeratu"
24 | "Aurreratu"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-fa/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "آهنگ قبلی"
19 | "آهنگ بعدی"
20 | "مکث"
21 | "پخش"
22 | "توقف"
23 | "عقب بردن"
24 | "جلو بردن سریع"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-fi/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Edellinen raita"
19 | "Seuraava raita"
20 | "Tauko"
21 | "Toista"
22 | "Seis"
23 | "Kelaa taakse"
24 | "Kelaa eteen"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-fr-rCA/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Chanson précédente"
19 | "Chanson suivante"
20 | "Pause"
21 | "Lecture"
22 | "Arrêter"
23 | "Reculer"
24 | "Avance rapide"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-fr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Piste précédente"
19 | "Piste suivante"
20 | "Interrompre"
21 | "Lire"
22 | "Arrêter"
23 | "Retour arrière"
24 | "Avance rapide"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-gl-rES/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Pista anterior"
19 | "Seguinte pista"
20 | "Pausar"
21 | "Reproducir"
22 | "Deter"
23 | "Rebobinar"
24 | "Avance rápido"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-gu-rIN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "પહેલાનો ટ્રૅક"
19 | "આગલો ટ્રૅક"
20 | "થોભો"
21 | "ચલાવો"
22 | "રોકો"
23 | "રીવાઇન્ડ કરો"
24 | "ઝડપી ફોરવર્ડ કરો"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-hi/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "पिछला ट्रैक"
19 | "अगला ट्रैक"
20 | "रोकें"
21 | "चलाएं"
22 | "बंद करें"
23 | "रिवाइंड करें"
24 | "फ़ास्ट फ़ॉरवर्ड"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-hr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Prethodna pjesma"
19 | "Sljedeća pjesma"
20 | "Pauziraj"
21 | "Reproduciraj"
22 | "Zaustavi"
23 | "Unatrag"
24 | "Brzo unaprijed"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-hu/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Előző szám"
19 | "Következő szám"
20 | "Szünet"
21 | "Lejátszás"
22 | "Leállítás"
23 | "Visszatekerés"
24 | "Előretekerés"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-hy-rAM/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Նախորդը"
19 | "Հաջորդը"
20 | "Դադարեցնել"
21 | "Նվագարկել"
22 | "Դադարեցնել"
23 | "Հետ փաթաթել"
24 | "Արագ առաջ անցնել"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-in/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Lagu sebelumnya"
19 | "Lagu berikutnya"
20 | "Jeda"
21 | "Putar"
22 | "Berhenti"
23 | "Putar Ulang"
24 | "Maju cepat"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-is-rIS/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Fyrra lag"
19 | "Næsta lag"
20 | "Hlé"
21 | "Spila"
22 | "Stöðva"
23 | "Spóla til baka"
24 | "Spóla áfram"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-iw/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "הרצועה הקודמת"
19 | "הרצועה הבאה"
20 | "השהה"
21 | "הפעל"
22 | "הפסק"
23 | "הרץ אחורה"
24 | "הרץ קדימה"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-ja/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "前のトラック"
19 | "次のトラック"
20 | "一時停止"
21 | "再生"
22 | "停止"
23 | "巻き戻し"
24 | "早送り"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-ka-rGE/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "წინა ჩანაწერი"
19 | "შემდეგი ჩანაწერი"
20 | "პაუზა"
21 | "დაკვრა"
22 | "შეწყვეტა"
23 | "უკან გადახვევა"
24 | "წინ გადახვევა"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-kk-rKZ/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Алдыңғы трек"
19 | "Келесі трек"
20 | "Кідірту"
21 | "Ойнату"
22 | "Тоқтату"
23 | "Кері айналдыру"
24 | "Жылдам алға айналдыру"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-km-rKH/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "បទមុន"
19 | "បទបន្ទាប់"
20 | "ផ្អាក"
21 | "ចាក់"
22 | "បញ្ឈប់"
23 | "ខាថយក្រោយ"
24 | "ទៅមុខរហ័ស"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-kn-rIN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "ಹಿಂದಿನ ಟ್ರ್ಯಾಕ್"
19 | "ಮುಂದಿನ ಟ್ರ್ಯಾಕ್"
20 | "ವಿರಾಮಗೊಳಿಸು"
21 | "ಪ್ಲೇ ಮಾಡು"
22 | "ನಿಲ್ಲಿಸು"
23 | "ರಿವೈಂಡ್ ಮಾಡು"
24 | "ವೇಗವಾಗಿ ಮುಂದಕ್ಕೆ"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-ko/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "이전 트랙"
19 | "다음 트랙"
20 | "일시중지"
21 | "재생"
22 | "중지"
23 | "되감기"
24 | "빨리 감기"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-ky-rKG/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Мурунку трек"
19 | "Кийинки трек"
20 | "Тындыруу"
21 | "Ойнотуу"
22 | "Токтотуу"
23 | "Артка түрүү"
24 | "Алдыга түрүү"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-lo-rLA/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "ເພງກ່ອນໜ້າ"
19 | "ເພງຕໍ່ໄປ"
20 | "ຢຸດຊົ່ວຄາວ"
21 | "ຫຼິ້ນ"
22 | "ຢຸດ"
23 | "ຣີວາຍກັບ"
24 | "ເລື່ອນໄປໜ້າ"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-lt/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Ankstesnis takelis"
19 | "Kitas takelis"
20 | "Pristabdyti"
21 | "Leisti"
22 | "Stabdyti"
23 | "Sukti atgal"
24 | "Sukti pirmyn"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-lv/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Iepriekšējais ieraksts"
19 | "Nākamais ieraksts"
20 | "Pārtraukt"
21 | "Atskaņot"
22 | "Apturēt"
23 | "Attīt atpakaļ"
24 | "Ātri patīt"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-mk-rMK/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Претходна песна"
19 | "Следна песна"
20 | "Пауза"
21 | "Пушти"
22 | "Запри"
23 | "Премотај назад"
24 | "Брзо премотај напред"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-mn-rMN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Өмнөх трек"
19 | "Дараагийн трек"
20 | "Түр зогсоох"
21 | "Тоглуулах"
22 | "Зогсоох"
23 | "Буцааж хураах"
24 | "Хурдан урагшлуулах"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-mr-rIN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "मागील ट्रॅक"
19 | "पुढील ट्रॅक"
20 | "विराम द्या"
21 | "प्ले करा"
22 | "थांबा"
23 | "रिवाईँड करा"
24 | "फास्ट फॉरवर्ड करा"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-ms-rMY/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Lagu sebelumnya"
19 | "Lagu seterusnya"
20 | "Jeda"
21 | "Main"
22 | "Berhenti"
23 | "Gulung semula"
24 | "Mara laju"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-my-rMM/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "ယခင် တစ်ပုဒ်"
19 | "နောက် တစ်ပုဒ်"
20 | "ခဏရပ်ရန်"
21 | "ဖွင့်ရန်"
22 | "ရပ်ရန်"
23 | "ပြန်ရစ်ရန်"
24 | "ရှေ့သို့ သွားရန်"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-nb/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Forrige spor"
19 | "Neste spor"
20 | "Sett på pause"
21 | "Spill av"
22 | "Stopp"
23 | "Tilbakespoling"
24 | "Fremoverspoling"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-ne-rNP/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "अघिल्लो ट्रयाक"
19 | "अर्को ट्रयाक"
20 | "रोक्नुहोस्"
21 | "चलाउनुहोस्"
22 | "रोक्नुहोस्"
23 | "दोहोर्याउनुहोस्"
24 | "फास्ट फर्वार्ड"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-nl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Vorig nummer"
19 | "Volgend nummer"
20 | "Onderbreken"
21 | "Afspelen"
22 | "Stoppen"
23 | "Terugspoelen"
24 | "Vooruitspoelen"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-pa-rIN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "ਪਿਛਲਾ ਟਰੈਕ"
19 | "ਅਗਲਾ ਟਰੈਕ"
20 | "ਰੋਕੋ"
21 | "ਪਲੇ ਕਰੋ"
22 | "ਰੋਕੋ"
23 | "ਰੀਵਾਈਂਡ ਕਰੋ"
24 | "ਅੱਗੇ ਭੇਜੋ"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-pl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Poprzedni utwór"
19 | "Następny utwór"
20 | "Wstrzymaj"
21 | "Odtwórz"
22 | "Zatrzymaj"
23 | "Przewiń do tyłu"
24 | "Przewiń do przodu"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-pt-rBR/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Faixa anterior"
19 | "Próxima faixa"
20 | "Pausar"
21 | "Reproduzir"
22 | "Parar"
23 | "Retroceder"
24 | "Avançar"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-pt-rPT/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Faixa anterior"
19 | "Faixa seguinte"
20 | "Interromper"
21 | "Reproduzir"
22 | "Parar"
23 | "Rebobinar"
24 | "Avançar"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-pt/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Faixa anterior"
19 | "Próxima faixa"
20 | "Pausar"
21 | "Reproduzir"
22 | "Parar"
23 | "Retroceder"
24 | "Avançar"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-ro/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Melodia anterioară"
19 | "Melodia următoare"
20 | "Pauză"
21 | "Redați"
22 | "Opriți"
23 | "Derulați"
24 | "Derulați rapid înainte"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-si-rLK/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "පෙර ගීතය"
19 | "ඊළඟ ගීතය"
20 | "විරාමය"
21 | "ධාවනය කරන්න"
22 | "නතර කරන්න"
23 | "නැවත ඔතන්න"
24 | "වේගයෙන් ඉදිරියට යන"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-sk/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Predchádzajúca stopa"
19 | "Ďalšia stopa"
20 | "Pozastaviť"
21 | "Prehrať"
22 | "Zastaviť"
23 | "Pretočiť späť"
24 | "Pretočiť dopredu"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-sl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Prejšnja skladba"
19 | "Naslednja skladba"
20 | "Zaustavi"
21 | "Predvajaj"
22 | "Ustavi"
23 | "Previj nazaj"
24 | "Previj naprej"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-sq-rAL/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Kënga e mëparshme"
19 | "Kënga tjetër"
20 | "Pauzë"
21 | "Luaj"
22 | "Ndalo"
23 | "Kthehu pas"
24 | "Përparo me shpejtësi"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-sr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Претходна песма"
19 | "Следећа песма"
20 | "Пауза"
21 | "Пусти"
22 | "Заустави"
23 | "Премотај уназад"
24 | "Премотај унапред"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-sv/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Föregående spår"
19 | "Nästa spår"
20 | "Pausa"
21 | "Spela upp"
22 | "Avbryt"
23 | "Spola tillbaka"
24 | "Snabbspola framåt"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-sw/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Wimbo uliotangulia"
19 | "Wimbo unaofuata"
20 | "Sitisha"
21 | "Cheza"
22 | "Simamisha"
23 | "Rudisha nyuma"
24 | "Peleka mbele kwa kasi"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-ta-rIN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "முந்தைய ட்ராக்"
19 | "அடுத்த ட்ராக்"
20 | "இடைநிறுத்து"
21 | "இயக்கு"
22 | "நிறுத்து"
23 | "மீண்டும் காட்டு"
24 | "வேகமாக முன்செல்"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-te-rIN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "మునుపటి ట్రాక్"
19 | "తదుపరి ట్రాక్"
20 | "పాజ్ చేయి"
21 | "ప్లే చేయి"
22 | "ఆపివేయి"
23 | "రివైండ్ చేయి"
24 | "వేగంగా ఫార్వార్డ్ చేయి"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-th/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "แทร็กก่อนหน้า"
19 | "แทร็กถัดไป"
20 | "หยุดชั่วคราว"
21 | "เล่น"
22 | "หยุด"
23 | "กรอกลับ"
24 | "กรอไปข้างหน้า"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-tl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Nakaraang track"
19 | "Susunod na track"
20 | "I-pause"
21 | "I-play"
22 | "Ihinto"
23 | "I-rewind"
24 | "I-fast forward"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-tr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Önceki parça"
19 | "Sonraki parça"
20 | "Duraklat"
21 | "Çal"
22 | "Durdur"
23 | "Geri sar"
24 | "İleri sar"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-ur-rPK/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "پچھلا ٹریک"
19 | "اگلا ٹریک"
20 | "موقوف کریں"
21 | "چلائیں"
22 | "روکیں"
23 | "ریوائینڈ کریں"
24 | "تیزی سے فارورڈ کریں"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-v11/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-vi/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "Bản nhạc trước"
19 | "Bản nhạc tiếp theo"
20 | "Tạm dừng"
21 | "Phát"
22 | "Ngừng"
23 | "Tua lại"
24 | "Tua đi"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-zh-rCN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "上一曲"
19 | "下一曲"
20 | "暂停"
21 | "播放"
22 | "停止"
23 | "快退"
24 | "快进"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-zh-rHK/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "上一首曲目"
19 | "下一首曲目"
20 | "暫停"
21 | "播放"
22 | "停止"
23 | "倒帶"
24 | "向前快轉"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values-zh-rTW/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | "上一首曲目"
19 | "下一首曲目"
20 | "暫停"
21 | "播放"
22 | "停止"
23 | "倒轉"
24 | "快轉"
25 |
26 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values/constants.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 | 71dp
19 | 52dp
20 |
21 | #FFF4F3F0
22 |
23 |
24 |
--------------------------------------------------------------------------------
/exoplayer_ui/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 | Previous track
18 | Next track
19 | Pause
20 | Play
21 | Stop
22 | Rewind
23 | Fast forward
24 |
25 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | ## Project-wide Gradle settings.
2 | #
3 | # For more details on how to configure your build environment visit
4 | # http://www.gradle.org/docs/current/userguide/build_environment.html
5 | #
6 | # Specifies the JVM arguments used for the daemon process.
7 | # The setting is particularly useful for tweaking memory settings.
8 | # Default value: -Xmx1024m -XX:MaxPermSize=256m
9 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
10 | #
11 | # When configured, Gradle will run in incubating parallel mode.
12 | # This option should only be used with decoupled projects. More details, visit
13 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
14 | # org.gradle.parallel=true
15 | #Mon Jun 26 19:34:47 CST 2017
16 | systemProp.http.proxyHost=hx.gy
17 | org.gradle.jvmargs=-Xmx1536m
18 | systemProp.http.proxyPort=1080
19 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TryLoveCatch/videoEditor/53ccac2253b221f59a53be09528b2085b94ced18/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Jun 26 19:34:44 CST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
7 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | include ':exoplayer_core'
3 | include ':exoplayer_ui'
4 |
--------------------------------------------------------------------------------