profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/ilya-afanasev/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

ilya-afanasev/csc-os-fall-2016 0

OS course fall 2016

ilya-afanasev/hpcourse 0

Project is aimed to store student's practical works on high performance computing course

ilya-afanasev/ktlint 0

An anti-bikeshedding Kotlin linter with built-in formatter

OSLL/avrvlab 0

open-source electronics prototyping platform

issue openedgoogle/ExoPlayer

url does not play

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

rtsp url not playe

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&timestamp=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-yinyu

issue 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.

charles-yinyu

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!

jordyamc

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.

KazukiSugiyama107

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.

barryyanggoing

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

starchey

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.

roninshahi

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.

inv3rse

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 AdsMediaSource was: 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.

grndvl1

comment created time in 13 hours

PR opened google/ExoPlayer

Fix empty CastTimeline on reconnect

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

+11 -7

0 comment

1 changed file

pr created time in 13 hours

issue commentgoogle/ExoPlayer

With exoplayer demo app v2.13.2 tunneling mode enabled, Can't mute/unmute when audio is connected with Bt speaker

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.

Sasikumartech

comment created time in 14 hours

issue closedgoogle/ExoPlayer

[bug] getCodecCapabilities

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

yoobi

issue commentgoogle/ExoPlayer

[bug] getCodecCapabilities

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 :)

yoobi

comment created time in 15 hours

issue commentgoogle/ExoPlayer

Secure decoder is re-initialized if renderer is disabled during a transition (e.g. due to seeking or a discontinuity)

Just tested it and it works very well :) Thank you

sergju

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.

JHMCJP

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

timusus

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.

tfcporciuncula

comment created time in 18 hours

issue commentgoogle/ExoPlayer

NoClassDefFoundError when creating AudioTrack

Could you please also comment which device is affected?

grndvl1

comment created time in 18 hours

issue commentgoogle/ExoPlayer

NoClassDefFoundError when creating AudioTrack

Please reopen if this doesn't fix your issue.

grndvl1

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

grndvl1

issue 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.

grndvl1

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!

Miklesam

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.

Miklesam

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.

isaacdz

comment created time in 19 hours

issue commentgoogle/ExoPlayer

How can I play flac files which sample rate is 384kHz or 352.8kHz.Is there any functions to resample flac files.

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.

zhhach123

comment created time in 19 hours

issue openedgoogle/ExoPlayer

How can I play flac files which sample rate is 384kHz or 352.8kHz.Is there any functions to resample flac files.

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

No sound for flac file

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