google / exoplayer Goto Github PK
View Code? Open in Web Editor NEWAn extensible media player for Android
License: Apache License 2.0
An extensible media player for Android
License: Apache License 2.0
I've been testing a number of playback scenarios and have found that 'some' MP4s which are using the DefaultRendererBuilder
don't actually start playback until a seekTo
request is made.
Here's the log of the Demo application attempting to play one of these MP4s:
07-22 15:02:15.843 15430-15430/com.google.android.exoplayer.demo I/ViewRootImpl﹕ ViewRoot's Touch Event : Touch Down
07-22 15:02:15.923 15430-15430/com.google.android.exoplayer.demo I/ViewRootImpl﹕ ViewRoot's Touch Event : Touch UP
07-22 15:02:15.993 15430-15430/com.google.android.exoplayer.demo I/ActivityManager﹕ Timeline: Activity_launch_request id:com.google.android.exoplayer.demo time:71928056
07-22 15:02:16.093 15430-15430/com.google.android.exoplayer.demo I/ExoPlayerImpl﹕ Init 1.0.11
07-22 15:02:16.223 15430-15430/com.google.android.exoplayer.demo I/ActivityManager﹕ Timeline: Activity_idle id: android.os.BinderProxy@4293a680 time:71928282
07-22 15:02:16.383 15430-15659/com.google.android.exoplayer.demo V/MediaExtractor﹕ MediaExtractor create
07-22 15:02:16.383 15430-15659/com.google.android.exoplayer.demo V/LgeMediaDetector﹕ GetMediaType start
07-22 15:02:16.463 15430-15659/com.google.android.exoplayer.demo V/LgeMediaDetector﹕ GetMainType start
07-22 15:02:16.463 15430-15659/com.google.android.exoplayer.demo V/LgeMediaDetector﹕ GetSubType start
07-22 15:02:16.463 15430-15659/com.google.android.exoplayer.demo V/LgeMediaDetector﹕ GetFTYPSubType start
07-22 15:02:16.463 15430-15659/com.google.android.exoplayer.demo V/LgeMediaDetector﹕ GetFTYPSubType end
07-22 15:02:16.463 15430-15659/com.google.android.exoplayer.demo V/LgeMediaDetector﹕ GetSubType end
07-22 15:02:16.463 15430-15659/com.google.android.exoplayer.demo V/LgeMediaDetector﹕ Pre GetMediaType [nMain:196608][nSub:196610]
07-22 15:02:16.463 15430-15659/com.google.android.exoplayer.demo V/LgeMediaDetector﹕ GetMediaType [nMain:3][nSub:2]
07-22 15:02:16.463 15430-15659/com.google.android.exoplayer.demo V/LgeMediaDetector﹕ GetMediaType end
07-22 15:02:16.463 15430-15659/com.google.android.exoplayer.demo V/MediaExtractor﹕ Autodetected media content as 'video/mp4' with confidence 0.60
07-22 15:02:16.463 15430-15659/com.google.android.exoplayer.demo E/MediaExtractorHelper﹕ LG-CodeParser Version: LG_CodecParser_R1.0.0.11
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo E/MediaExtractorHelper﹕ SupportCodecEx : 104
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo E/MediaExtractorHelper﹕ #### Video mime video/avc
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/MediaCodecList﹕ getNewMediaCodecItem [0][DTSDecode][audio/dts]
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/MediaCodecList﹕ getNewMediaCodecItem [0][DDPDecode][audio/eac3]
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/MediaCodecList﹕ getNewMediaCodecItem [0][DDPDecode][audio/ac3]
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/MediaCodecList﹕ getNewMediaCodecItem [0][OMX.VisualOn.Video.Decoder.XXX][video/hevc]
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo E/MediaExtractorHelper﹕ #### componentName = OMX.qcom.video.decoder.avc
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchXmlParserImpl﹕ [BrunchXmlParserImpl::findIndexByKey] typeIndex < 0
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchUsedCodecEx﹕ [removeUsedCodecExLastItem] size = 8
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchXmlParserImpl﹕ [BrunchXmlParserImpl::findIndexByKey] typeIndex < 0
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchUsedCodecEx﹕ [removeUsedCodecExLastItem] size = 7
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchXmlParserImpl﹕ [BrunchXmlParserImpl::findIndexByKey] typeIndex < 0
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchUsedCodecEx﹕ [removeUsedCodecExLastItem] size = 6
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchXmlParserImpl﹕ [BrunchXmlParserImpl::findIndexByKey] typeIndex < 0
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchUsedCodecEx﹕ [removeUsedCodecExLastItem] size = 5
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchXmlParserImpl﹕ [BrunchXmlParserImpl::findIndexByKey] typeIndex < 0
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchUsedCodecEx﹕ [removeUsedCodecExLastItem] size = 4
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchXmlParserImpl﹕ [BrunchXmlParserImpl::findIndexByKey] typeIndex < 0
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchUsedCodecEx﹕ [removeUsedCodecExLastItem] size = 3
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchXmlParserImpl﹕ [BrunchXmlParserImpl::findIndexByKey] typeIndex < 0
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchUsedCodecEx﹕ [removeUsedCodecExLastItem] size = 2
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchXmlParserImpl﹕ [BrunchXmlParserImpl::findIndexByKey] typeIndex < 0
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo I/BrunchUsedCodecEx﹕ [removeUsedCodecExLastItem] size = 1
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo W/BrunchUsedCodecImpl﹕ [isUsedCodec] Used codec!!!!! = video/avc
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo E/MediaExtractorHelper﹕ #### componentName = OMX.google.h264.decoder
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo W/BrunchUsedCodecImpl﹕ [isUsedCodec] Used codec!!!!! = video/avc
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo E/MediaExtractorHelper﹕ SupportCodecEx : 201
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo E/MediaExtractorHelper﹕ #### Audio mime audio/mp4a-latm
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo E/MediaExtractorHelper﹕ #### componentName = OMX.google.aac.decoder
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo W/BrunchUsedCodecImpl﹕ [isUsedCodec] Used codec!!!!! = audio/mp4a-latm
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo E/MediaExtractorHelper﹕ #### componentName = AACDecoder
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo W/BrunchUsedCodecImpl﹕ [isUsedCodec] Used codec!!!!! = audio/mp4a-latm
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo E/MediaExtractorHelper﹕ #### componentName = OMX.qcom.audio.decoder.multiaac
07-22 15:02:16.473 15430-15659/com.google.android.exoplayer.demo W/BrunchUsedCodecImpl﹕ [isUsedCodec] Used codec!!!!! = audio/mp4a-latm
07-22 15:02:16.513 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.513 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.513 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.513 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.513 15430-15659/com.google.android.exoplayer.demo I/OMXClient﹕ Using client-side OMX mux.
07-22 15:02:16.523 15430-15679/com.google.android.exoplayer.demo I/OMXClient﹕ Using client-side OMX mux.
07-22 15:02:16.533 15430-15679/com.google.android.exoplayer.demo E/ACodec﹕ [OMX.qcom.video.decoder.avc] storeMetaDataInBuffers failed w/ err -2147483648
07-22 15:02:16.533 15430-15679/com.google.android.exoplayer.demo I/ACodec﹕ DRC Mode: Port Reconfig Mode
07-22 15:02:16.533 15430-15679/com.google.android.exoplayer.demo I/ExtendedCodec﹕ Enabling timestamp reordering
07-22 15:02:16.583 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.583 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.583 15430-15659/com.google.android.exoplayer.demo I/OMXClient﹕ Using client-side OMX mux.
07-22 15:02:16.583 15430-15659/com.google.android.exoplayer.demo E/OMXMaster﹕ A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
07-22 15:02:16.583 15430-15659/com.google.android.exoplayer.demo I/﹕ @@@VOLOG Info THD 625AE718: VOOMXPlugin.cpp VOOMXPlugin 59 open libvoOMXOne.so successfully. 0X62D4024C
07-22 15:02:16.583 15430-15659/com.google.android.exoplayer.demo E/﹕ VOLOG Info THD 625AE718 voCOMXBaseConfig.cpp Open 368 The config file vomeOne.cfg could not be opened!
07-22 15:02:16.603 15430-15685/com.google.android.exoplayer.demo I/OMXClient﹕ Using client-side OMX mux.
07-22 15:02:16.603 15430-15685/com.google.android.exoplayer.demo E/OMXMaster﹕ A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
07-22 15:02:16.603 15430-15685/com.google.android.exoplayer.demo I/﹕ @@@VOLOG Info THD 625ACF08: VOOMXPlugin.cpp VOOMXPlugin 59 open libvoOMXOne.so successfully. 0X62D40004
07-22 15:02:16.603 15430-15685/com.google.android.exoplayer.demo E/﹕ VOLOG Info THD 625ACF08 voCOMXBaseConfig.cpp Open 368 The config file vomeOne.cfg could not be opened!
07-22 15:02:16.613 15430-15686/com.google.android.exoplayer.demo I/SoftAAC2﹕ Reconfiguring decoder: 0->48000 Hz, 0->2 channels
07-22 15:02:16.623 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.623 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.623 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getOutputSamplingRate() no output descriptor for output 2 in gOutputs
07-22 15:02:16.623 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getSamplingRate() streamType 3, output 2, sampling rate 48000
07-22 15:02:16.623 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getFrameCount() streamType 3, output 2, frameCount 960
07-22 15:02:16.623 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getLatency() streamType 3, output 2, latency 160
07-22 15:02:16.623 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ getMinFrameCount=7680: afFrameCount=960, minBufCount=8, afSampleRate=48000, afLatency=160
07-22 15:02:16.633 15430-15442/com.google.android.exoplayer.demo V/AudioSystem﹕ ioConfigChanged() event 0, ioHandle 3
07-22 15:02:16.633 15430-15442/com.google.android.exoplayer.demo V/AudioSystem﹕ ioConfigChanged() new output samplingRate 48000, format 1 channel mask 0x3 frameCount 960 latency 84
07-22 15:02:16.633 15430-15442/com.google.android.exoplayer.demo V/AudioSystem﹕ ioConfigChanged() event 0, ioHandle 2
07-22 15:02:16.633 15430-15442/com.google.android.exoplayer.demo V/AudioSystem﹕ ioConfigChanged() new output samplingRate 48000, format 1 channel mask 0x3 frameCount 960 latency 160
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getFrameCount() streamType 3, output 2, frameCount 960
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getOutputSamplingRate() reading from output desc
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getSamplingRate() streamType 3, output 2, sampling rate 48000
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ sampleRate 48000, channelMask 0x3, format 1
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ streamType 3
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ set() streamType 3, sampleRate 48000, format 1, frameCount 30720, flags 0000
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getLatency() streamType 3, output 2, latency 160
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getFrameCount() streamType 3, output 2, frameCount 960
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getOutputSamplingRate() reading from output desc
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getSamplingRate() streamType 3, output 2, sampling rate 48000
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ createTrack_l() output 2 afLatency 160
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ afFrameCount=960, minBufCount=8, afSampleRate=48000, afLatency=160
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ minFrameCount: 7680, afFrameCount=960, minBufCount=8, sampleRate=48000, afSampleRate=48000, afLatency=160
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ lge.normalizer.param = version2.0/true/14.5/true/8230/1.0/2050/0.55
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ SoundNormalizer:version = version2.0
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ SoundNormalizer:Enable = "true"
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: SoundNormalizer:Enable set to true
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerMakeupGain = 14.5
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ SoundNormalizer:PreFilter_HPF_350Hz = "true"
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: AudioEffect:SoundNormalizer:PreFilter_HPF_350Hz set to true
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerLimiterThreshold = 8230
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerLimiterSlope = 1.00
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerCompressorThreshold = 2050
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerCompressorSlope = 0.55
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ NormalizerV2(session: 403): mNormalizerV2->process(framecount: 1)
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ NormalizerV2: channelCount = 2, mStreamType = 3, mFlags = 0
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.633 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.643 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.643 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.653 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.653 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.663 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.663 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.673 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.673 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.683 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.683 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.693 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.693 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.703 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.703 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.713 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.713 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.723 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.723 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.733 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.733 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.743 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.743 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:16.753 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:16.753 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:18.573 15430-15674/com.google.android.exoplayer.demo I/NuCachedSource2﹕ Cache full, done prefetching for now
The application then sits there, thinking it's playing, but nothing happening. If you attempt to pause / play, nothing happens. Only when you seek will playback actually start. Here's the log immediately after my first seek:
07-22 15:02:26.853 15430-15430/com.google.android.exoplayer.demo I/ViewRootImpl﹕ ViewRoot's Touch Event : Touch Down
07-22 15:02:26.903 15430-15430/com.google.android.exoplayer.demo I/ViewRootImpl﹕ ViewRoot's Touch Event : Touch UP
07-22 15:02:27.813 15430-15430/com.google.android.exoplayer.demo I/ViewRootImpl﹕ ViewRoot's Touch Event : Touch Down
07-22 15:02:27.833 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.833 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.863 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.863 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.863 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.873 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.873 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.873 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.873 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.873 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.873 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.873 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.873 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.873 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.883 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.883 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.893 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.893 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.893 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.893 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.893 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.893 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.893 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.893 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.893 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.893 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.903 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.903 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.903 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.903 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.903 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.903 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.913 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.913 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.913 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.913 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.913 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.913 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.923 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.923 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.933 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.933 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.933 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.933 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.943 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.943 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.943 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.943 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.953 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.953 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.963 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.963 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.963 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.963 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.973 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.973 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getFrameCount() streamType 3, output 2, frameCount 960
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getOutputSamplingRate() reading from output desc
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getSamplingRate() streamType 3, output 2, sampling rate 48000
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ sampleRate 48000, channelMask 0x3, format 1
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ streamType 3
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ set() streamType 3, sampleRate 48000, format 1, frameCount 30720, flags 0000
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getLatency() streamType 3, output 2, latency 160
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getFrameCount() streamType 3, output 2, frameCount 960
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getOutputSamplingRate() reading from output desc
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getSamplingRate() streamType 3, output 2, sampling rate 48000
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ createTrack_l() output 2 afLatency 160
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ afFrameCount=960, minBufCount=8, afSampleRate=48000, afLatency=160
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ minFrameCount: 7680, afFrameCount=960, minBufCount=8, sampleRate=48000, afSampleRate=48000, afLatency=160
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ lge.normalizer.param = version2.0/true/14.5/true/8230/1.0/2050/0.55
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ SoundNormalizer:version = version2.0
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ SoundNormalizer:Enable = "true"
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: SoundNormalizer:Enable set to true
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerMakeupGain = 14.5
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ SoundNormalizer:PreFilter_HPF_350Hz = "true"
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: AudioEffect:SoundNormalizer:PreFilter_HPF_350Hz set to true
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerLimiterThreshold = 8230
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerLimiterSlope = 1.00
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerCompressorThreshold = 2050
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerCompressorSlope = 0.55
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ NormalizerV2(session: 403): mNormalizerV2->process(framecount: 1)
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ NormalizerV2: channelCount = 2, mStreamType = 3, mFlags = 0
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:27.983 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.003 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.003 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.003 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.003 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.013 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.013 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.023 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.023 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.033 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.033 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.053 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.053 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.053 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.053 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.063 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.063 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.073 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.073 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.083 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.083 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.093 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.093 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.103 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.103 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.103 15430-15430/com.google.android.exoplayer.demo I/ViewRootImpl﹕ ViewRoot's Touch Event : Touch UP
07-22 15:02:28.113 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.113 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.123 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.123 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.123 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.123 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getFrameCount() streamType 3, output 2, frameCount 960
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getOutputSamplingRate() reading from output desc
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getSamplingRate() streamType 3, output 2, sampling rate 48000
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ sampleRate 48000, channelMask 0x3, format 1
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ streamType 3
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ set() streamType 3, sampleRate 48000, format 1, frameCount 30720, flags 0000
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getLatency() streamType 3, output 2, latency 160
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getFrameCount() streamType 3, output 2, frameCount 960
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getOutputSamplingRate() reading from output desc
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo V/AudioSystem﹕ getSamplingRate() streamType 3, output 2, sampling rate 48000
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ createTrack_l() output 2 afLatency 160
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ afFrameCount=960, minBufCount=8, afSampleRate=48000, afLatency=160
07-22 15:02:28.133 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ minFrameCount: 7680, afFrameCount=960, minBufCount=8, sampleRate=48000, afSampleRate=48000, afLatency=160
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ lge.normalizer.param = version2.0/true/14.5/true/8230/1.0/2050/0.55
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ SoundNormalizer:version = version2.0
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ SoundNormalizer:Enable = "true"
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: SoundNormalizer:Enable set to true
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerMakeupGain = 14.5
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ SoundNormalizer:PreFilter_HPF_350Hz = "true"
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: AudioEffect:SoundNormalizer:PreFilter_HPF_350Hz set to true
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerLimiterThreshold = 8230
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerLimiterSlope = 1.00
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerCompressorThreshold = 2050
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo V/SoundNormalizerUtil﹕ normalizer V2: normalizerCompressorSlope = 0.55
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ NormalizerV2(session: 403): mNormalizerV2->process(framecount: 1)
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo V/AudioTrack﹕ NormalizerV2: channelCount = 2, mStreamType = 3, mFlags = 0
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.143 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.153 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.153 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.163 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.163 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.173 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.173 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.183 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.183 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.193 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.193 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.203 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.203 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.213 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.213 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.223 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.223 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.233 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.233 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.243 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.243 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.253 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.253 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.263 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.263 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.273 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.273 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.283 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.283 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.563 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.563 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.583 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.583 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.613 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.613 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.663 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.663 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.703 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.703 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.753 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.753 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.783 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.783 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.833 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.833 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.893 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.893 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.953 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.953 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.973 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:28.973 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:28.983 15430-15430/com.google.android.exoplayer.demo I/ViewRootImpl﹕ ViewRoot's Touch Event : Touch Down
07-22 15:02:29.013 15430-15430/com.google.android.exoplayer.demo I/ViewRootImpl﹕ ViewRoot's Touch Event : Touch UP
07-22 15:02:30.033 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Re-check a condition - 'isMalformed = 0'
07-22 15:02:30.033 15430-15659/com.google.android.exoplayer.demo E/MPEG4Extractor﹕ [LGE-MP4P] Reset mWrongNALCounter.
07-22 15:02:33.613 15430-15674/com.google.android.exoplayer.demo I/NuCachedSource2﹕ Keep alive
07-22 15:02:48.703 15430-15674/com.google.android.exoplayer.demo I/NuCachedSource2﹕ Keep alive
In my own application, i'm working around the issue by detecting when the video is ready to be played and then immediately seeking to the expected offset, e.g.
@Override
public void onDrawnToSurface(Surface surface)
{
m_player.seekTo(m_offset);
}
I would link an example of the problematic MP4, but I just need to check with someone first that it's okay to share.
MediaPlayer handles playing videos filmed in portrait mode without issue, playing them with the proper orientation. ExoPlayer with the provided MediaCodecVideoTrackRender does not. Wish I could set an orientation hint with the MediaMetadataRetriever. I guess I can create my own GLSurfaceView and adjust this onDraw, but this is certainly not ideal.
It was unclear whether this bug was actually and ExoPlayer issue, or is in fact an Android L issue. However, since the change in behaviour only happens when I use the ExoPlayer, I thought best to raise here...
When attempting to play a video from a server which returns a redirect (302) with a Location pointing to a different domain, the ExoPlayer refuses to start playback. Instead, the following error message is written to the logcat:
W/MediaHTTPConnection﹕ readAt 0 / 32768 => java.net.NoRouteToHostException: Cross-domain redirects are disallowed
If instead of using ExoPlayer, I use the native MediaPlayer
on the same URL, it works. This URL also works on all previous versions of Android. The error message is quite precise, but I am unaware of any designed changes in the network security. Especially since it's quite popular to redirect resources to CDNs which are likely to be cross-domain.
Unfortunately, the test videos I have to test against would involve a significant amount of setup. I'm happy to provide a guide if required, but it should be possible to reproduce this issue with a local HTTP server redirecting to an online video.
This issue occurs when using either the FrameworkSampleSource
or the DASH support. I'm using the following code to detect the size of the video in order to correctly specify the expected aspect ratio:
@Override
public void onVideoSizeChanged(int width, int height)
{
// Update the expected aspect ratio of the VideoSurface.
m_videoSurface.setVideoWidthHeightRatio(width / (float)height);
}
The problem is that the width and height provided in this callback do not take into account the pixel aspect ratio of anamorphic content. Internally, the video player should know the whether it is dealing with non-1:1 pixel aspect ratio. Is this exposed anywhere? Is there a way for me to determine the "real" video width and height?
I have started to look at the TextTrackRenderer, but do not see any examples or documentation on how to set it up. I just wanted to ask if there is anything available before I dive in and start to figure out how to do it.
I assume that I can extend the functionality of the DefaultRendererBuilder to also support building the text renderer?
Does the TextTrackRenderer constructor just take a FrameworkSampleSource with the URI pointed to the appropriate TTML file?
Thanks, Andy
I tried using ExoPlayer in an application that has to support 2.3.7 and above. However, both FrameworkSampleSource and MediaCodecTrackRenderer require API level >= 16. I guess FrameworkSampleSource can be replaced by ChunkSampleSource but what about MediaCodecTrackRenderer? Does anyone have a 9-compatible implementation of TrackRenderer?
Currently ExoPlayer only supports a narrow subset of possible DASH manifests. Support should be added for manifests containing segment lists and segment templates.
Note: As a workaround, application developers can already support arbitrary DASH manifests through implementing their own parser and ChunkSource (it's probably useful to use DashMp4ChunkSource as a starting point).
Hi, what DASH spec is used? Downloading link please
I've made a test live source for DASH-IF that is available at http://54.201.151.65/livesim/testpic_2s/Manifest.mpd.
The DASH-IF reference player dash.js can run this content for IE11 on Windows 8.1 and in Chrome 38.0.2 and later.
Some more information is available at http://54.201.151.65/dashifserver.html
Since this is a synthetic live source it is very stable and reliable.
It would be great if you can use this content as a test source as the live support is being further developed. If you have any questions or suggestions, don't hesitate to contact me.
ExoPlayer don't want play my flv file http://master255.org/res/Клипы/B/Black Eyed Peas/black eyed peas-My Humps.flv
But standart player play this file normaly. Check this bug.
Standart player: https://github.com/master255/TextureVideoPlayer
Could anyone help me to understand and correct this playback exception? I think this may have to do with my custom data source, as the video plays fine with the default http data source. However, it seems to happen randomly and I'm not sure exactly what the problem is. If there was a problem with parsing a frame why isn't it just dropped?
E com.google.android.exoplayer.ExoPlaybackException: com.google.android.exoplayer.ParserException: java.lang.IllegalArgumentException: Top bit not zero: -1838046119
E at com.google.android.exoplayer.MediaCodecTrackRenderer.doSomeWork(MediaCodecTrackRenderer.java:412)
E at com.google.android.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:397)
E at com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:203)
E at android.os.Handler.dispatchMessage(Handler.java:98)
E at android.os.Looper.loop(Looper.java:136)
E at android.os.HandlerThread.run(HandlerThread.java:61)
E at com.google.android.exoplayer.ExoPlayerImplInternal$1.run(ExoPlayerImplInternal.java:109)
E Caused by: com.google.android.exoplayer.ParserException: java.lang.IllegalArgumentException: Top bit not zero: -1838046119
E at com.google.android.exoplayer.parser.mp4.FragmentedMp4Extractor.read(FragmentedMp4Extractor.java:241)
E at com.google.android.exoplayer.chunk.Mp4MediaChunk.read(Mp4MediaChunk.java:117)
E at com.google.android.exoplayer.chunk.ChunkSampleSource.readData(ChunkSampleSource.java:336)
E at com.google.android.exoplayer.MediaCodecTrackRenderer.feedInputBuffer(MediaCodecTrackRenderer.java:503)
E at com.google.android.exoplayer.MediaCodecTrackRenderer.doSomeWork(MediaCodecTrackRenderer.java:405)
E ... 6 more
E Caused by: java.lang.IllegalArgumentException: Top bit not zero: -1838046119
E at com.google.android.exoplayer.parser.mp4.FragmentedMp4Extractor.readUnsignedIntToInt(FragmentedMp4Extractor.java:1167)
E at com.google.android.exoplayer.parser.mp4.FragmentedMp4Extractor.readSample(FragmentedMp4Extractor.java:1085)
E at com.google.android.exoplayer.parser.mp4.FragmentedMp4Extractor.readOrSkipSample(FragmentedMp4Extractor.java:1029)
E at com.google.android.exoplayer.parser.mp4.FragmentedMp4Extractor.read(FragmentedMp4Extractor.java:235)
ExoPlayer seems great, problem is we can't find an affordable host for DASH content. It looks like a majority of the samples in the demo app are hosted by youtube. However, I can't find documentation anywhere on this manifest/dash api that is being used.
Is this a public api? Is there a way for independent devs to use it? Can you recommend any other host if not youtube?
Here is example of youtube host I am talking about:
http://www.youtube.com/api/manifest/dash/id/bf5bb2419360daf1/source/youtube?as=fmp4_audio_clear,fmp4_sd_hd_clear&sparams=ip,ipbits,expire,as&ip=0.0.0.0&ipbits=0&expire=19000000000&signature=255F6B3C07C753C88708C07EA31B7A1A10703C8D.2D6A28B21F921D0B245CDCF36F7EB54A2B5ABFC2&key=ik0
Hi,
I've downloaded the project and when I imported it it generated problems.. I tried looking for the file that has generated problems but I didn't find any. The error message pops up when hitting IMPORT after choosing the right path.. Can anybody help me ??
I can see ExoPlayer supports Smooth Streaming. Does this include Smooth Streaming LIVE as well?
A quick test gives this exception:
07-14 11:21:15.956: E/EventLogger(23424): java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
07-14 11:21:15.956: E/EventLogger(23424): at com.google.android.exoplayer.smoothstreaming.SmoothStreamingManifestParser$StreamElementParser.parseStreamFragmentStartTag(SmoothStreamingManifestParser.java:455)
For the non-drm SuperSpeed video, playback fails due to a recently introduced NPE. The fix is trivial (move the line of code into the if block below it), and will be pushed soon:
E/EventLogger(12045): Caused by: java.lang.NullPointerException: Attempt to read from null array
E/EventLogger(12045): at com.google.android.exoplayer.parser.mp4.FragmentedMp4Extractor.parseTraf(FragmentedMp4Extractor.java:784)
E/EventLogger(12045): at com.google.android.exoplayer.parser.mp4.FragmentedMp4Extractor.parseMoof(FragmentedMp4Extractor.java:764)
E/EventLogger(12045): at com.google.android.exoplayer.parser.mp4.FragmentedMp4Extractor.onMoofContainerAtomRead(FragmentedMp4Extractor.java:454)
E/EventLogger(12045): at com.google.android.exoplayer.parser.mp4.FragmentedMp4Extractor.onContainerAtomRead(FragmentedMp4Extractor.java:425)
E/EventLogger(12045): at com.google.android.exoplayer.parser.mp4.FragmentedMp4Extractor.readAtomPayload(FragmentedMp4Extractor.java:403)
E/EventLogger(12045): at com.google.android.exoplayer.parser.mp4.FragmentedMp4Extractor.read(FragmentedMp4Extractor.java:273)
E/EventLogger(12045): ... 10 more
ExoPlayer is said to require minimum API=9, but it fails to play video on 2.3.4:
01-14 21:46:15.961 7094-7094/com.google.android.exoplayer.demo E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NoSuchFieldError: android.os.AsyncTask.THREAD_POOL_EXECUTOR
at com.google.android.exoplayer.demo.simple.DashVodRendererBuilder.buildRenderers(DashVodRendererBuilder.java:78)
at com.google.android.exoplayer.demo.simple.SimplePlayerActivity.onResume(SimplePlayerActivity.java:130)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
at android.app.Activity.performResume(Activity.java:3882)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2191)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2228)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1721)
at android.app.ActivityThread.access$1500(ActivityThread.java:124)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3806)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
METHOD=AES-128
I am trying to play this file: http://podcast.armadamusic.com/asot/episodes/episode334.m4a
Inside FrameworkSampleSource in prepare() extractor.getTrackCount() gives 4. However android.media.MediaFormat format = extractor.getTrackFormat(i); causes error for i=3. So it seems that it cannot recognize last track format. Here is an error:
E/SampleTable﹕ mNumSyncSamples error
A/Utils﹕ frameworks/av/media/libstagefright/Utils.cpp:108 CHECK(meta->findInt32(kKeyWidth, &width)) failed.
A/libc﹕ Fatal signal 6 (SIGABRT) at 0x00005871 (code=-6), thread 23133 (ExoPlayerImplIn)
Omitting last track causes ExoPlayer to work without problems.
Hello guys. Is it possible to change playback rate of video track e.g play faster or play slow ?
DASH mandates RepresentationIDs in Manifests to match type String. Exo only works with Int currently.
I found that if DEFAULT_MIN_BUFFER_MULTIPLICATION_FACTOR
is greater than 1
, resume the playback that remaining time is in a short time (0 ~ 1 sec) won't play.
What we are concerned to have DEFAULT_MIN_BUFFER_MULTIPLICATION_FACTOR
factor, thanks!
Right now it looks like the VideoRenderer is tightly coupled to SimplePlayerActivity. It becomes difficult to migrate the player into a fragment and then reuse it.
01-14 21:41:21.336 6953-6953/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NoSuchMethodError: com.google.android.exoplayer.demo.SampleChooserActivity$SampleAdapter.addAll
at com.google.android.exoplayer.demo.SampleChooserActivity.onCreate(SampleChooserActivity.java:52)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1660)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1716)
at android.app.ActivityThread.access$1500(ActivityThread.java:124)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3806)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Implement support for Closed Captioning via:
EIA-608 (CEA-608)
CEA-708
WEBVTT
As per title.
This only happens when (a) TTML subtitles are delivered in the live stream, (b) they are sparse, and (c) they are enabled.
I see that the recommended proguard settings for this project are on the gitignore list. I think it would be helpful to add this to the repository.
After downloading the following videos to several devices with our software, I found the exoplayer unable to play many of them. In addition, it failed to start automatically for every single one of them.
The following videos were playable on most devices, but did not autostart. If I skipped the play head forward about 500 milliseconds they would play fine:
http://download.jw.org/files/content_assets/fa/502013341_E_cnt_1_r240P.mp4
http://download.jw.org/files/content_assets/d4/502013341_E_cnt_1_r360P.mp4
http://download.jw.org/files/content_assets/cc/502013341_E_cnt_1_r480P.mp4
http://download.jw.org/files/content_assets/19/502013341_E_cnt_1_r720P.mp4
The following videos were unable to play at all with exoplayer on any device tested, but the native android mediaplayer can play them all on most devices:
http://download.jw.org/files/content_assets/3f/502014311_E_cnt_1_r240P.mp4
http://download.jw.org/files/content_assets/f4/502014311_E_cnt_1_r360P.mp4
http://download.jw.org/files/content_assets/98/502014311_E_cnt_1_r480P.mp4
http://download.jw.org/files/content_assets/9a/502014311_E_cnt_1_r720P.mp4
http://download.jw.org/files/content_assets/e9/502014315_E_cnt_1_r240P.mp4
http://download.jw.org/files/content_assets/0d/502014315_E_cnt_1_r360P.mp4
http://download.jw.org/files/content_assets/09/502014315_E_cnt_1_r480P.mp4
http://download.jw.org/files/content_assets/2e/502014315_E_cnt_1_r720P.mp4
http://download.jw.org/files/content_assets/10/502014344_E_cnt_1_r240P.mp4
http://download.jw.org/files/content_assets/bc/502014344_E_cnt_1_r360P.mp4
http://download.jw.org/files/content_assets/79/502014344_E_cnt_1_r480P.mp4
http://download.jw.org/files/content_assets/7a/502014344_E_cnt_1_r720P.mp4
The exoplayer also did not appear to work for API 9 and 10 devices at all.
Note that, otherwise, my experience with exoplayer was very good. The documentation was sufficient, the demos were excellent. Once the player was playing I found the quality was good, and I appreciated the flexibility. I was excited about the features and control, but it's inability to play locally hosted content of certain types made it unusable for us. I hope to use it more in the future, and we have retained the code for "streaming-only" situations where we hope that it will perform better than the native MediaPlayer.
The ExoPlayer would be very good to use in binary form from JCenter or Maven Central. It is less useful as a source-only project as there is a higher likelihood of fork-and-hoard behavior.
Can give me sample how cache video. And How do play video from cache. I have found CacheDataSource, but I don't know how it use.
I was having a look at how ExoPlayer would handle DASH with AC3 audio. The main reason for this is that at Google I/O this year (during the main Android TV talk) it was stated that Android L would include support for AC3 and AC3 passthrough. This is of course a major feature for the Android TV, allowing multichannel audio formats.
I attempted to play a DASH which included a AC3 audio track, but found that the parsing of the MP4 failed. This was caused by the lack of support when reading the STSD ATOM, which appears to only handle AVC1, AVC3 and MP4A. (https://github.com/google/ExoPlayer/blob/master/library/src/main/java/com/google/android/exoplayer/parser/mp4/FragmentedMp4Extractor.java#L589)
@ojw28 - Are there any plans to support AC3 in time for the release of Android L? Also, is the lack of support purely a parsing limitation (at the moment) or are there likely to be various things that need implementing further down the pipeline?
Most of the time when mobile have low internet bandwidth the player download and buffering all video file, but the player don't play and photo still freeze.
So if you want to rerun the video you must click previous button until the start of video.
this happen in both SimplePlayerActivity and FullPlayerActivity.
In DashVodRendererBuilder onManifest if none of the adaptation sets have video that matches the capability of the device, such as android emulator, the player crashes.
This is due to no check on empty ArrayList videoRepresentationsList before converting to array.
This occurs when the array is accessed at line 167 of DashVodRendererBuilder.java (dev branch)
String mimeType = videoRepresentations[0].format.mimeType;
Hi,
After calling setPlayWhenReady(true), the ExoPlayer goes through many states. But before it reaches the ready state (STATE_READY), if "stop" gets called on the current ExoPlayer object, it takes too much (5-6 seconds) to release the resources and this could hang the app. (In case play and stop buttons are dependent on ExoPlayer state.)
In the exact same scenario, MediaPlayer does update the states immediately.
Any efficient way to handle this scenario.
Thanks,
Khushwant Singh
like 'MediaPlayer.setOnBufferingUpdateListener' ....
Hi,
I see in your demo code the audio track is configured as the master time source, off of which video rendering is slaved. Could you provide some guidance on how to handle a video-only stream?
I wrote a custom SampleSource that properly provides samples of H.264 ES. Each sample has a presentation timestamp (PTS) that is easily converted to microseconds but the stream has its own timebase.
I am able to render frames by deriving from MediaCodecVideoTrackRenderer
and overriding processOutputBuffer()
but its a huge hack.
So what would be the right way?
Should I use a time algorithm similar to what you have in MediaCodecAudioTrackRenderer
? I think the steps I need to do are:
MediaCodecVideoTrackRenderer
isTimeSource()
to return truegetCurrentPositionUs()
and return time position based on System.nanotime
and videoTrackStartMediaTimeUs
(time of first video frame rendered)Thoughts?
Thanks,
Peter
ExoPlayer must work Andoroid 4.4 now ,but my device is ANdroid 4.1(16),how to do it ,let it work well?
i wanto play http url with mp4 file,(http://121.199.61.174/testhtml5.mp4),
I am using the demo app to stream from the url http://50.31.154.35:80/wnycfm with DefaultRendererBuilder. The live streaming works fine with wifi connection. However, if wifi is off or not connected, the live streaming always stops after playing about one minute. This happens on both Nexus 5 (android 4.4.4) and S5 (android 4.4.2), so it is not a device related issue.
The logcat outputs suggests the buffer is underrun and end of stream is reached.
08-24 12:50:51.775: I/ExoPlayerImpl(29671): Init 1.0.12
08-24 12:51:12.085: I/OMXClient(29671): Using client-side OMX mux.
08-24 12:51:12.085: E/OMXMaster(29671): A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
08-24 12:51:12.095: I/OMXClient(29671): Using client-side OMX mux.
08-24 12:51:12.095: E/OMXMaster(29671): A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
08-24 12:52:42.805: W/AudioTrack(29671): releaseBuffer() track 0x4a38ea88 name=s:185;n:1;f:-1 disabled due to previous underrun, restarting
08-24 12:52:42.805: I/NuCachedSource2(29671): ERROR_END_OF_STREAM
Any help is appreciated!
Both ManifestFetcher and HttpDataSource can not easily be extended. Use case is wanting to inject a better network stack such as OKHTTP or ION. These can still easily be replaced due to the modularity of ExoPlayer although it would be nice to leverage a little bit of the implementation for both of these classes rather than copy/paste. It would be great if there was a common http interface to plug in where ever http is used in this project.
On certain KitKat devices I am seeing weird video artifacts when using ExoPlayer to render H.264 with a TextureView
.
I have a previous implementation of my rendering pipeline that used MediaCodec
directly and it does not exhibit this issue. Also using ExoPlayer with SurfaceView
does not exhibit this issue.
Also, I've only observed this on certain KitKat devices (see table below).
Screenshot of ExoPlayer with TextureView
showing issue:
Screenshot of expected good video:
Here's a test matrix showing when issue occurs. FAIL means the video artifacts are seen.
Device | Android Ver. | ExoPlayer or MediaCodec | View Type | PASS/FAIL |
---|---|---|---|---|
Samsung S4 | 4.4.2 | ExoPlayer | TextureView | FAIL |
Samsung S3 | 4.4.2 | ExoPlayer | TextureView | FAIL |
Samsung S4 | 4.4.2 | ExoPlayer | SurfaceView | Pass |
Samsung S3 | 4.4.2 | ExoPlayer | SurfaceView | Pass |
Samsung S4 | 4.4.2 | MediaCodec | TextureView | Pass |
Samsung S3 | 4.4.2 | MediaCodec | TextureView | Pass |
Nexus 5 | 4.4.4 | ExoPlayer | SurfaceView | Pass |
Nexus 5 | 4.4.4 | ExoPlayer | TextureView | Pass |
Nexus 5 | 4.4.4 | MediaCodec | SurfaceView | Pass |
Nexus 5 | 4.4.4 | MediaCodec | TextureView | Pass |
Has anyone else had a problem with starting local playback again after calling stop()? I'm running a few test cases and have found that ExoPlayer gets stuck in prepare() when trying to restart playback. For the record, my test case is essentially play -> stop -> reinitialize renderers -> set surface -> prepare, upon which it seems to get stuck in STATE_BUFFERING with MediaCodecVideoTrackRenderer.isReady() continually returning false. I'm running it on Android 4.4.4. Thanks!
on my device, after exoplayer started playing video, ExoPlayer.onPlayerStateChanged is called after about 600ms, then state becomes buffering and after that, getCurrentPosition is 97391604
, and it's larger then exoplayer.getDuration.
I wonder if the onPlayerStateChanged is called uncorrectly.
http://developer.android.com/guide/appendix/media-formats.html says that RTSP is supported but when trying to access an RTSP stream the MediaExtractor fails.
Hi,
I have used ExoPlayer in my app to stream live audio and it is working quite well. I have got complaints from few of the users that the playback speed is double than normal. I am still waiting to get the list of devices that are having this issue. Any idea why some of the devices have this issue??
I have used a very basic code to play audio
Uri builtUri = Uri.parse(BASE_URL);
// Build the sample source
FrameworkSampleSource sampleSource = new FrameworkSampleSource(this,
builtUri, null, 1);
// Build the track renderers
TrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(
sampleSource, null, true);
// Build the ExoPlayer and start playback
exoPlayer = ExoPlayer.Factory.newInstance(1);
exoPlayer.prepare(audioRenderer);
exoPlayer.setPlayWhenReady(true);
exoPlayer.addListener(this);
Please note that I have tested ExoPlayer on Samsung and HTC phones and it does work very well.
Any help will be highly appreciated.
Thanks
This helps avoid issues when seeking very close to the start and end of the track, in particular if the seek is to t=0 but the start time of the first segment is very slightly greater than 0.
If this makes sense, bounding should be applied in the following places:
I'm having issues when i'm trying to play an MP4 but at a non-zero offset. I'm allowing the user to "Resume" their video where they last stopped playing, but occasionally (maybe 1 in 3), ExoPlayer refuses to start playback.
I don't think I am doing anything unusual when configuring the player, e.g.
m_player.prepare(renderers);
m_player.seekTo(m_offset);
I can see from logging in the onPlayerStateChanged
callback, that the video player goes through the following states: STATE_IDLE, STATE_PREPARING and STATE_BUFFERING. It then remains in the buffering state indefinitely.
The issue appears to be effected by the fact i'm trying to seek in the video. I'm yet to have it fail when starting the video at the beginning. Is this a known issue? Are there any workarounds to ensure that playback always begins?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.