Skip to content

Failed to query codec OMX.qcom.audio.decoder.mp3 (audio/mpeg) #1714

Closed
@watemotion

Description

@watemotion

I'm working with ExoPlayer and it works fine with all devices i have tested, except for a LG-E975.
On a LG-E975 I'm getting the following exception when i do play a streaming url, and I can't play the stream:

Device: LG-E975
Android version: 4.1.2
ExoPlayer version: 1.5.9
okHttp version: 3.4.1

E/dalvikvm: Could not find class 'android.media.PlaybackParams', referenced from method com.google.android.exoplayer.MediaCodecAudioTrackRenderer.handleMessage

E/MediaCodecUtil: Failed to query codec OMX.qcom.audio.decoder.mp3 (audio/mpeg)
E/ExoPlayerImplInternal: Internal track renderer error.
 com.google.android.exoplayer.ExoPlaybackException: com.google.android.exoplayer.MediaCodecUtil$DecoderQueryException: Failed to query underlying media codecs
     at com.google.android.exoplayer.SampleSourceTrackRenderer.doPrepare(SampleSourceTrackRenderer.java:78)
     at com.google.android.exoplayer.TrackRenderer.prepare(TrackRenderer.java:110)
     at com.google.android.exoplayer.ExoPlayerImplInternal.incrementalPrepareInternal(ExoPlayerImplInternal.java:273)
     at com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:205)
     at android.os.Handler.dispatchMessage(Handler.java:95)
     at android.os.Looper.loop(Looper.java:137)
     at android.os.HandlerThread.run(HandlerThread.java:60)
     at com.google.android.exoplayer.util.PriorityHandlerThread.run(PriorityHandlerThread.java:40)
  Caused by: com.google.android.exoplayer.MediaCodecUtil$DecoderQueryException: Failed to query underlying media codecs
     at com.google.android.exoplayer.MediaCodecUtil.getDecoderInfosInternal(MediaCodecUtil.java:189)
     at com.google.android.exoplayer.MediaCodecUtil.getDecoderInfos(MediaCodecUtil.java:129)
     at com.google.android.exoplayer.MediaCodecUtil.getDecoderInfo(MediaCodecUtil.java:106)
     at com.google.android.exoplayer.MediaCodecSelector$1.getDecoderInfo(MediaCodecSelector.java:35)
     at com.google.android.exoplayer.MediaCodecAudioTrackRenderer.handlesTrack(MediaCodecAudioTrackRenderer.java:216)
     at com.google.android.exoplayer.MediaCodecTrackRenderer.handlesTrack(MediaCodecTrackRenderer.java:293)
     at com.google.android.exoplayer.SampleSourceTrackRenderer.doPrepare(SampleSourceTrackRenderer.java:76)
     at com.google.android.exoplayer.TrackRenderer.prepare(TrackRenderer.java:110) 
     at com.google.android.exoplayer.ExoPlayerImplInternal.incrementalPrepareInternal(ExoPlayerImplInternal.java:273) 
     at com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:205) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:137) 
     at android.os.HandlerThread.run(HandlerThread.java:60) 
     at com.google.android.exoplayer.util.PriorityHandlerThread.run(PriorityHandlerThread.java:40) 
  Caused by: java.lang.IllegalArgumentException
     at android.media.MediaCodecList.getCodecCapabilities(Native Method)
     at android.media.MediaCodecInfo.getCapabilitiesForType(MediaCodecInfo.java:211)
     at com.google.android.exoplayer.MediaCodecUtil.getDecoderInfosInternal(MediaCodecUtil.java:160)
     at com.google.android.exoplayer.MediaCodecUtil.getDecoderInfos(MediaCodecUtil.java:129) 
     at com.google.android.exoplayer.MediaCodecUtil.getDecoderInfo(MediaCodecUtil.java:106) 
     at com.google.android.exoplayer.MediaCodecSelector$1.getDecoderInfo(MediaCodecSelector.java:35) 
     at com.google.android.exoplayer.MediaCodecAudioTrackRenderer.handlesTrack(MediaCodecAudioTrackRenderer.java:216) 
     at com.google.android.exoplayer.MediaCodecTrackRenderer.handlesTrack(MediaCodecTrackRenderer.java:293) 
     at com.google.android.exoplayer.SampleSourceTrackRenderer.doPrepare(SampleSourceTrackRenderer.java:76) 
     at com.google.android.exoplayer.TrackRenderer.prepare(TrackRenderer.java:110) 
     at com.google.android.exoplayer.ExoPlayerImplInternal.incrementalPrepareInternal(ExoPlayerImplInternal.java:273) 
     at com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:205) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:137) 
     at android.os.HandlerThread.run(HandlerThread.java:60) 
     at com.google.android.exoplayer.util.PriorityHandlerThread.run(PriorityHandlerThread.java:40)

Here is how i do play an url:

Allocator allocator = new DefaultAllocator(NavigationDrawer.BUFFER_SEGMENT_SIZE);
String userAgent = Util.getUserAgent(NavigationDrawer.context, "ExoPlayer");
DataSource dataSource = new DefaultUriDataSource(context, null, new OkHttpDataSource(okHttpClient, userAgent, null));
ExtractorSampleSource sampleSource = new ExtractorSampleSource(radioUri, dataSource, allocator, BUFFER_SEGMENT_SIZE * BUFFER_SEGMENT_COUNT);
MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource, MediaCodecSelector.DEFAULT, null, true, null, null, null, AudioManager.STREAM_MUSIC);
myExoPlayer.prepare(audioRenderer);
myExoPlayer.setPlayWhenReady(true);

Activity

self-assigned this
on Aug 4, 2016
andrewlewis

andrewlewis commented on Aug 4, 2016

@andrewlewis
Collaborator

@watemotion Thanks for reporting this. I don't have a test device on Jelly Bean, so please could you try out the following workaround? Add || Util.DEVICE.startsWith("gee") to the condition here and let me know if that solves the issue, or if you see some other error. Thanks!

watemotion

watemotion commented on Aug 4, 2016

@watemotion
Author

@andrewlewis Your workaround solved the problem, now I can listen the stream. Thank you for replying so quickly.

andrewlewis

andrewlewis commented on Aug 5, 2016

@andrewlewis
Collaborator

Great. This issue should be updated when we push the fix.

locked and limited conversation to collaborators on Jun 28, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @andrewlewis@watemotion

      Issue actions

        Failed to query codec OMX.qcom.audio.decoder.mp3 (audio/mpeg) · Issue #1714 · google/ExoPlayer