ilya-afanasev/csc-os-fall-2016 0
OS course fall 2016
Project is aimed to store student's practical works on high performance computing course
An anti-bikeshedding Kotlin linter with built-in formatter
open-source electronics prototyping platform
issue openedgoogle/ExoPlayer
http://123.140.197.22/stream/2_128_66550/index.m3u8
Does not jump from STATE_BUFFERING to STATE_READY
created time in 3 hours
issue openedgoogle/ExoPlayer
implementation 'com.google.android.exoplayer:exoplayer-core:2.14.1'
implementation 'com.google.android.exoplayer:exoplayer-dash:2.14.1'
implementation 'com.google.android.exoplayer:exoplayer-hls:2.14.1'
implementation 'com.google.android.exoplayer:exoplayer-rtsp:2.14.1'
rtsp://live.wjmbc.co.kr/fm2
E/ExoPlayerImplInternal: Playback error com.google.android.exoplayer2.ExoPlaybackException: Source error at com.google.android.exoplayer2.x0.handleMessage(:580) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:214) at android.os.HandlerThread.run(HandlerThread.java:65) Caused by: java.io.IOException: com.google.android.exoplayer2.ParserException: java.lang.IllegalArgumentException: Multiple entries with same key: pgmpu=data:application/vnd.ms.wms-hdr.asfv1;base64,MCaydY5mzxGm2QCqAGLObFATAAAAAAAABwAAAAECMyaydY5mzxGm2QCqAGLObCoAAAAAAAAACAAAAAAAAAAAAEYATQAyAAAAznX4e41G0RGNggBgl8misiAAAAAAAAAAAQABAIV/AACh3KuMR6nPEY7kAMAMIFNlaAAAAAAAAACx101Q6hyGTL6C+VflbGnQghMAAAAAAADAlJblaEXPAf////8AAAAAAAAAAAAAAAAAAAAAAAAAACsGAAAAAAAACQAAAO4FAADuBQAAhX8AALUDv18uqc8RjuMAwAwgU2W4EAAAAAAAABHS06u6qc8RjuYAwAwgU2UGAIoQAACpRkN84O/8S7IpOT7eQVyFLgAAAAAAAAACAAZrAG8AAAAMZQBuAC0AdQBzAAAAy6XmFHLGMkODmalpUgZbWlgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABh9AAArBgAAAAAAABh9AAArBgAAAAAAAM8FAAAAAAAAAQABAAAAAAAAAAAAAAAAAF2L8SaERexHn18OZR8EUskaAAAAAAAAAAIB6sv4xa9bd0iEZ6qMRPpMynoAAAAAAAAAAgAAAAEADAACAAIAAABJAHMAVgBCAFIAAAAAAAAAAQA0AAAABgAAAEQAZQB2AGkAYwBlAEMAbwBuAGYAbwByAG0AYQBuAGMAZQBUAGUAbQBwAGwAYQB0AGUAAABMADIAAAB01AYY38oJRaS6mqvLlqrocA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
created time in 3 hours
issue closedgoogle/ExoPlayer
Inaccurate EXTINF in m3u8 playlist leads to wrong clip position
Media URL: http://freevod.nf.migu.cn:8080/HvlmXE4s1sZ2lFLNrjmRI3Xac7sAHB3Bo0R1D6179Fv6iy1P0%2F3hONhDvJHW3%2BNGoooXTbtNkRh0q2u3NpmnhMp7sRQ9UN%2BFZVrHlLmbKSDnudrhzah0vusSi6omMOi49xkZntZgBLXrUV1dkjZQUEYJD0MV7ClZJ%2BKTDxskgRg2yUoX6Xiw1VdDnXchvv9x/600575Y9P8H044207.mp4.m3u8?msisdn=1ae26295-9758-49bc-9c27-c6db2f76cb48&spid=600906&sid=56887397529200×tamp=20210531165722&encrypt=2dba5c8acd9430fa683b3a0dc477dbf6&k=58ea4616d3cce25a&t=1622458642787&ec=2&flag=+&FN=filename
which is used in a ClipMediaSource started as 9791ms. Unfortunately, the video is started from about 7000ms.
The reason is because the second ts segment in the m3u8 playlist is marked as #EXTINF 1s but actually lasts for 3s. HlsMediaChunk adjusts the timestamp by startTimeUs which is written from #EXTINF. Eventually TimestampAdjuster adjust sample timestamp by a wrong timestampOffsetUs.
HlsMediaChunk.java
private void loadMedia() throws IOException, InterruptedException {
if (!isMasterTimestampSource) {
timestampAdjuster.waitUntilInitialized();
} else if (timestampAdjuster.getFirstSampleTimestampUs() == TimestampAdjuster.DO_NOT_OFFSET) {
// We're the master and we haven't set the desired first sample timestamp yet.
**timestampAdjuster.setFirstSampleTimestampUs(startTimeUs);**
}
feedDataToExtractor(dataSource, dataSpec, mediaSegmentEncrypted);
}
TimestampAdjuster.java
public long adjustSampleTimestamp(long timeUs) {
if (timeUs == C.TIME_UNSET) {
return C.TIME_UNSET;
}
// Record the adjusted PTS to adjust for wraparound next time.
if (lastSampleTimestampUs != C.TIME_UNSET) {
lastSampleTimestampUs = timeUs;
} else {
if (firstSampleTimestampUs != DO_NOT_OFFSET) {
// Calculate the timestamp offset.
**timestampOffsetUs = firstSampleTimestampUs - timeUs;**
}
synchronized (this) {
lastSampleTimestampUs = timeUs;
// Notify threads waiting for this adjuster to be initialized.
notifyAll();
}
}
**return timeUs + timestampOffsetUs;**
}
Hope you guys can help, thanks.
closed time in 9 hours
charles-yinyuissue commentgoogle/ExoPlayer
Inaccurate EXTINF in m3u8 playlist leads to wrong clip position
This doesn't seem like something that should fall on the client. Closing as bad media.
comment created time in 9 hours
issue commentgoogle/ExoPlayer
Settings popup disabling fullscreen using StyledPlayerControllView
Hiding and displaying the system bars is handled by application code rather than by ExoPlayer, so it's somewhat unclear to what extent this is an ExoPlayer issue. If you'd like us to take a look at what's going on, please could you provide a simple GitHub project that we can clone to reproduce the issue? Thanks!
comment created time in 9 hours
issue openedgoogle/ExoPlayer
How to setAllowChunklessPreparation(true) in MediaSourceFactory
We were earlier using ConcatinatingMediaSource to prepare our player.
While creating mediasource, we were using the following to enable chunkless preparation for HLS:
HlsMediaSource.Factory(dataSourceFactory).setAllowChunklessPreparation(true);
Now, we are moving to using MediaItems instead of mediasource to keep our app in line with latest releases of exo sample app. How can we enable chunkless preparation using the new flow:
MediaSourceFactory mediaSourceFactory = new DefaultMediaSourceFactory(dataSourceFactory) .setAdsLoaderProvider(this::getAdsLoader) .setAdViewProvider(playerView);
created time in 10 hours
issue commentgoogle/ExoPlayer
"Decoder init failed" occurs at video playback start
Marking as needs more info until the updated bug report has been provided.
comment created time in 10 hours
issue commentgoogle/ExoPlayer
how to get audiotrack when audio play
Marking "needs more info" because insufficient information was provided to make it clear what's being asked.
comment created time in 11 hours
issue commentgoogle/ExoPlayer
Don't cache if caching not allowed in Cache-Control HTTP header
The solution in our case was simply to do as detailed by @starchey above and not use a caching DataSource
comment created time in 12 hours
issue commentgoogle/ExoPlayer
PlayerView: Provide option to show default artwork when no prepared player is attached
Yeah, I'm surprised there is no way to show a placeholder image then when prepare and play go, hide that image and show video. Should be an option unless there is something blocking that from happening. I will just wrap an image view and show hide when player is prepping.
comment created time in 13 hours
issue commentgoogle/ExoPlayer
[Cast] CastTimeline stays empty on reconnect
I have looked a bit more into it, but it seems like with the workaround all the other info is also set appropriately.
The position and duration is correct, and the MediaItem is also there.
I can not see the internal tracker, so I might be missing something. But since it looked fine to me I created a pull request.
comment created time in 13 hours
issue commentgoogle/ExoPlayer
NoClassDefFoundError when creating AudioTrack
The amount of depreciation is fairly minimal in 2.12.1, only
AdsMediaSourcewas: r2.12.0...r2.12.1. I would suggest either backporting the fix or updating to 2.12.1.
We error on deprecation in our builds either you suppress or fix. Client does not like to suppress.
comment created time in 13 hours
PR opened google/ExoPlayer
After connecting to a cast device that is already playing, the CastTimeline would initially stay empty.
And in turn all methods that rely on the timeline would also report incorrect data.
The reason for this is that the MediaQueue would always return an empty array as active ids until there are further state changes on the cast. This does appear to be an issue in the cast framework, but it can easily be worked around by checking the MediaStatus instead.
Fixes https://github.com/google/ExoPlayer/issues/9026
pr created time in 13 hours
issue commentgoogle/ExoPlayer
AudioManager.adjustStreamVolume will mute the music stream of the whole device. It will mute all other application too, and persist after the application is closed. This is identical to the user pressing the mute button on the remote/system ui.
It is highly unusual for an application to change the stream volume or mute it. Apps are expected to use Player.setVolume:https://github.com/google/ExoPlayer/blob/b2333c86c1eac9a1f95992960a8495f1e5b79200/library/common/src/main/java/com/google/android/exoplayer2/Player.java#L1717-L1722
This will only impact the volume of the player this is called on.
As per why AudioManager.adjustStreamVolume failed, I can't tell without a bug report. Can you change the volume by using the volume buttons or the remote control while playing? If the tunneled media doesn't change loudness when the volume is changed, then the device has an hardware issue.
comment created time in 14 hours
issue closedgoogle/ExoPlayer
Hello, I'm getting error by Crashlytics, I couldn't reproduce this issue myself so I have only the stacktrace I'm getting from Crashlytics. From my understanding it's trying to read a video mp4a but fails to do so
Fatal Exception: java.lang.UnsupportedOperationException: com.google.android.exoplayer2.ExoPlaybackException: MediaCodecAudioRenderer error, index=0, format=Format(1/15, null, null, audio/mp4a-latm, mp4a.40.2, -1, null, [-1, -1, -1.0], [2, 44100]), format_supported=YES
at com.google.android.exoplayer2.offline.DownloadHelper.runTrackSelection(DownloadHelper.java:886)
at com.google.android.exoplayer2.offline.DownloadHelper.onMediaPrepared(DownloadHelper.java:791)
at com.google.android.exoplayer2.offline.DownloadHelper.access$200(DownloadHelper.java:91)
at com.google.android.exoplayer2.offline.DownloadHelper$MediaPreparer.handleDownloadHelperCallbackMessage(DownloadHelper.java:1056)
at com.google.android.exoplayer2.offline.DownloadHelper$MediaPreparer.lambda$Db71ShN3QybOcTYlOayKmy_uYGE(DownloadHelper.java:28)
at com.google.android.exoplayer2.offline.-$$Lambda$DownloadHelper$MediaPreparer$Db71ShN3QybOcTYlOayKmy_uYGE.handleMessage(-.java:28)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5299)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641)
at dalvik.system.NativeStart.main(NativeStart.java)
Caused by com.google.android.exoplayer2.ExoPlaybackException: MediaCodecAudioRenderer error, index=0, format=Format(1/15, null, null, audio/mp4a-latm, mp4a.40.2, -1, null, [-1, -1, -1.0], [2, 44100]), format_supported=YES
at com.google.android.exoplayer2.ExoPlaybackException.createForRenderer(ExoPlaybackException.java:196)
at com.google.android.exoplayer2.BaseRenderer.createRendererException(BaseRenderer.java:369)
at com.google.android.exoplayer2.BaseRenderer.createRendererException(BaseRenderer.java:344)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.supportsFormat(MediaCodecRenderer.java:507)
at com.google.android.exoplayer2.trackselection.MappingTrackSelector.findRenderer(MappingTrackSelector.java:485)
at com.google.android.exoplayer2.trackselection.MappingTrackSelector.selectTracks(MappingTrackSelector.java:355)
at com.google.android.exoplayer2.offline.DownloadHelper.runTrackSelection(DownloadHelper.java:845)
at com.google.android.exoplayer2.offline.DownloadHelper.onMediaPrepared(DownloadHelper.java:791)
at com.google.android.exoplayer2.offline.DownloadHelper.access$200(DownloadHelper.java:91)
at com.google.android.exoplayer2.offline.DownloadHelper$MediaPreparer.handleDownloadHelperCallbackMessage(DownloadHelper.java:1056)
at com.google.android.exoplayer2.offline.DownloadHelper$MediaPreparer.lambda$Db71ShN3QybOcTYlOayKmy_uYGE(DownloadHelper.java:28)
at com.google.android.exoplayer2.offline.-$$Lambda$DownloadHelper$MediaPreparer$Db71ShN3QybOcTYlOayKmy_uYGE.handleMessage(-.java:28)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5299)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641)
at dalvik.system.NativeStart.main(NativeStart.java)
Caused by com.google.android.exoplayer2.mediacodec.MediaCodecUtil$DecoderQueryException: Failed to query underlying media codecs
at com.google.android.exoplayer2.mediacodec.MediaCodecUtil.getDecoderInfosInternal(MediaCodecUtil.java:369)
at com.google.android.exoplayer2.mediacodec.MediaCodecUtil.getDecoderInfos(MediaCodecUtil.java:171)
at com.google.android.exoplayer2.mediacodec.-$$Lambda$x39zU57LL5hHh1BDD4qtUQaOOjU.getDecoderInfos(-.java)
at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.getDecoderInfos(MediaCodecAudioRenderer.java:330)
at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.supportsFormat(MediaCodecAudioRenderer.java:294)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.supportsFormat(MediaCodecRenderer.java:505)
at com.google.android.exoplayer2.trackselection.MappingTrackSelector.findRenderer(MappingTrackSelector.java:485)
at com.google.android.exoplayer2.trackselection.MappingTrackSelector.selectTracks(MappingTrackSelector.java:355)
at com.google.android.exoplayer2.offline.DownloadHelper.runTrackSelection(DownloadHelper.java:845)
at com.google.android.exoplayer2.offline.DownloadHelper.onMediaPrepared(DownloadHelper.java:791)
at com.google.android.exoplayer2.offline.DownloadHelper.access$200(DownloadHelper.java:91)
at com.google.android.exoplayer2.offline.DownloadHelper$MediaPreparer.handleDownloadHelperCallbackMessage(DownloadHelper.java:1056)
at com.google.android.exoplayer2.offline.DownloadHelper$MediaPreparer.lambda$Db71ShN3QybOcTYlOayKmy_uYGE(DownloadHelper.java:28)
at com.google.android.exoplayer2.offline.-$$Lambda$DownloadHelper$MediaPreparer$Db71ShN3QybOcTYlOayKmy_uYGE.handleMessage(-.java:28)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5299)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641)
at dalvik.system.NativeStart.main(NativeStart.java)
Caused by java.lang.IllegalArgumentException
at android.media.MediaCodecList.getCodecCapabilities(MediaCodecList.java)
at android.media.MediaCodecInfo.getCapabilitiesForType(MediaCodecInfo.java:291)
at com.google.android.exoplayer2.mediacodec.MediaCodecUtil.getDecoderInfosInternal(MediaCodecUtil.java:303)
at com.google.android.exoplayer2.mediacodec.MediaCodecUtil.getDecoderInfos(MediaCodecUtil.java:171)
at com.google.android.exoplayer2.mediacodec.-$$Lambda$x39zU57LL5hHh1BDD4qtUQaOOjU.getDecoderInfos(-.java)
at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.getDecoderInfos(MediaCodecAudioRenderer.java:330)
at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.supportsFormat(MediaCodecAudioRenderer.java:294)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.supportsFormat(MediaCodecRenderer.java:505)
at com.google.android.exoplayer2.trackselection.MappingTrackSelector.findRenderer(MappingTrackSelector.java:485)
at com.google.android.exoplayer2.trackselection.MappingTrackSelector.selectTracks(MappingTrackSelector.java:355)
at com.google.android.exoplayer2.offline.DownloadHelper.runTrackSelection(DownloadHelper.java:845)
at com.google.android.exoplayer2.offline.DownloadHelper.onMediaPrepared(DownloadHelper.java:791)
at com.google.android.exoplayer2.offline.DownloadHelper.access$200(DownloadHelper.java:91)
at com.google.android.exoplayer2.offline.DownloadHelper$MediaPreparer.handleDownloadHelperCallbackMessage(DownloadHelper.java:1056)
at com.google.android.exoplayer2.offline.DownloadHelper$MediaPreparer.lambda$Db71ShN3QybOcTYlOayKmy_uYGE(DownloadHelper.java:28)
at com.google.android.exoplayer2.offline.-$$Lambda$DownloadHelper$MediaPreparer$Db71ShN3QybOcTYlOayKmy_uYGE.handleMessage(-.java:28)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5299)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641)
at dalvik.system.NativeStart.main(NativeStart.java)
- ExoPlayer version number: 2.14.0
- Android version: 4.4.2
- Android device: alps M
closed time in 15 hours
yoobiissue commentgoogle/ExoPlayer
Yes you're right only a few users are affected by it and this bug seems to be only on Android 4. So I think we can discard this bug :)
comment created time in 15 hours
issue commentgoogle/ExoPlayer
Just tested it and it works very well :) Thank you
comment created time in 16 hours
issue commentgoogle/ExoPlayer
When a play a mpg video,it throw FfmpegAudioRenderer error
I didn't try, but based on typing the error number (16976906) into Google, I think it's likely you're hitting this bug in FFmpeg: https://trac.ffmpeg.org/ticket/8428
It looks like the fix made it into FFmpeg 4.3, where-as our FFmpeg extension instructions still recommend 4.2.
I'd suggest you try using FFmpeg 4.3 instead. If that works please let us know, and we'll update our guidance.
comment created time in 17 hours
issue commentgoogle/ExoPlayer
Choppy audio playback for some m4a's
i facing same issue POCO M2 Android 10 in ExoPlayer #2.14.1.
the m4a files i have those from iTunes and then transferred them to an Android phone song_test.zip
comment created time in 18 hours
issue commentgoogle/ExoPlayer
Support moving download location (e.g., between internal and external storage)
Hi, do you plan to fix for that? Would be great. Thank you.
comment created time in 18 hours
issue commentgoogle/ExoPlayer
NoClassDefFoundError when creating AudioTrack
Could you please also comment which device is affected?
comment created time in 18 hours
issue commentgoogle/ExoPlayer
NoClassDefFoundError when creating AudioTrack
Please reopen if this doesn't fix your issue.
comment created time in 18 hours
issue closedgoogle/ExoPlayer
NoClassDefFoundError when creating AudioTrack
Fails on the build() using the example code from the site and adding it into my coroutine lifecycle call for onStart. Called in the onViewCreated() of the fragment
viewLifecycleOwner.lifecycleScope.launchWhenStarted {
val player = SimpleExoPlayer.Builder(requireContext()).build()
playerView.setPlayer(viewLifecycleOwner, player)
val mediaItem = MediaItem.fromUri("https://drive.google.com/file/d/0Bx6SjufVPqftRUFzcWJsN3ZvQlE/view?usp=sharing&resourcekey=0-xvspZ6qDe5jA5i5VcZUIWw")
player.addMediaItem(mediaItem)
player.repeatMode = REPEAT_MODE_ONE
player.prepare()
player.play()
}
2021-06-09 11:10:33.630 16091-16091/ai.bright.ifit.tv.dev I/art: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.exoplayer2.audio.DefaultAudioSink$StreamEventCallbackV29>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
2021-06-09 11:10:33.630 16091-16091/ai.bright.ifit.tv.dev I/art: at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
2021-06-09 11:10:33.630 16091-16091/ai.bright.ifit.tv.dev I/art: at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
2021-06-09 11:10:33.630 16091-16091/ai.bright.ifit.tv.dev I/art: at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
2021-06-09 11:10:33.630 16091-16091/ai.bright.ifit.tv.dev I/art: at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
closed time in 18 hours
grndvl1issue commentgoogle/ExoPlayer
NoClassDefFoundError when creating AudioTrack
The amount of depreciation is fairly minimal in 2.12.1, only AdsMediaSource was: https://github.com/google/ExoPlayer/compare/r2.12.0...r2.12.1. I would suggest either backporting the fix or updating to 2.12.1.
comment created time in 18 hours
issue commentgoogle/ExoPlayer
Ads: Support moving playback from one view/activity to another
@ojw28 Thanks for your reply.
Do I understand correctly that when the player is recreated, the ad request will be repeated and the ad will start playing from the beginning?
Is it possible not to re-request the ad again and save the place where the ad stopped?
Thanks for the help!
comment created time in 18 hours
issue commentgoogle/ExoPlayer
IMA Extension - Ad's overlay not shown after rotate
The problem with your approach is that the views are all being recreated (because you're not using configChanges = "orientation"), but the player is not.
Hence you're effectively moving playback from one set of views to another. We don't support this for ad playbacks at the moment, unfortunately. It would be good for us to provide support, but this may also require changes in the IMA library, so I'm not sure how easy it would be. Marking this issue as an enhancement.
As of today, your options are to avoid recreating the views (like the demo app does with configChanges = "orientation") or to recreate the player (like the demo app does if you remove configChanges = "orientation"with no other changes). Unfortunately the second option doesn't produce a particularly seamless transition, so I can see why it's not a very good solution.
comment created time in 18 hours
issue commentgoogle/ExoPlayer
Override selectVideoTrack , but it keeps calling the initial track
If your goal is to implement an ABR algorithm for DASH and/or HLS then you'll need to implement a custom TrackSelection. As a starting point, I'd suggest you look at AdaptiveTrackSelection in the library, which is the built in ABR algorithm. The quality evaluation happens in AdaptiveTrackSelection.updateSelectedTrack. It may be easiest for you to start by forking AdaptiveTrackSelection and editing it to suit your needs.
To actually use your custom TrackSelection implementation, create a DefaultTrackSelector using the constructor that takes an ExoTrackSelection.Factory factory.
comment created time in 19 hours
issue commentgoogle/ExoPlayer
Have you tried using the FLAC extension? It looks like we removed any restriction on sample rate in this commit, which would suggest that playback might work from 2.11.2 and above.
If it doesn't please provide complete information as requested in our issue template, including reproduction steps.
comment created time in 19 hours
issue openedgoogle/ExoPlayer
Hi, I have a android project using Exoplayer to play music.Now I have a project function to play DXD audio files.This audio files is flac files which format is 384kHz/24bit or 352.8kHz/24bit.Most of mobilephones do not support the sample rate.So,is there any solutions? My solution is to resample these DXD files to 192kHz or 176.4kHz,then play them.Is there any functions to resample flac files in Exoplayer? Thanks.
created time in 20 hours
issue closedgoogle/ExoPlayer
On devices which android version higher than 9 work fine.
But on devices which is lower than 9 there is no sound while playing flac audios.
On android 9 devices some work well but some no sound while playing flac audios.
I am using verison 2.12.0.
Thanks.
closed time in 20 hours
zhhach123