title: Exoplayer decoder init failed when playing Admob reward videos
body: <p>I'm testing reward videos from Admob and I'm getting the error bellow.
  The code is correct because it works on a Samsung S7.</p>
  
  <p>The error accurs when running on a Samsung S3 mini with Jelly Bean 4.3.1.</p>
  
  <pre><code>I/Ads: Starting ad request.
  I/Ads: This request is sent from a test device.
  I/ExoPlayerImpl: Init 1.3.1
  I/dalvikvm: Could not find method android.media.MediaCodec.releaseOutputBuffer, referenced from method com.google.android.gms.ads.exoplayer1.ab.a
  W/dalvikvm: VFY: unable to resolve virtual method 2135: Landroid/media/MediaCodec;.releaseOutputBuffer (IJ)V
  D/dalvikvm: VFY: replacing opcode 0x6e at 0x007d
  I/dalvikvm: Could not find method android.media.AudioTrack.write, referenced from method com.google.android.gms.ads.exoplayer1.l.a
  W/dalvikvm: VFY: unable to resolve virtual method 2114: Landroid/media/AudioTrack;.write (Ljava/nio/ByteBuffer;II)I
  D/dalvikvm: VFY: replacing opcode 0x6e at 0x01cb
  I/dalvikvm: Could not find method android.media.MediaCodecInfo$CodecCapabilities.isFeatureSupported, referenced from method com.google.android.gms.ads.exoplayer1.v.a
  W/dalvikvm: VFY: unable to resolve virtual method 2147: Landroid/media/MediaCodecInfo$CodecCapabilities;.isFeatureSupported (Ljava/lang/String;)Z
  D/dalvikvm: VFY: replacing opcode 0x6e at 0x001a
  I/OMXClient: Using client-side OMX mux.
  E/dalvikvm: Could not find class 'android.media.MediaCodec$CodecException', referenced from method com.google.android.gms.ads.exoplayer1.t.&lt;init&gt;
  W/dalvikvm: VFY: unable to resolve instanceof 508 (Landroid/media/MediaCodec$CodecException;) in Lcom/google/android/gms/ads/exoplayer1/t;
  D/dalvikvm: VFY: replacing opcode 0x20 at 0x003d
  W/Ads: ExoPlayer failed during precache: DecoderInitializationError Exception: Decoder init failed: [-49998], MediaFormat(audio/mp4a-latm, 16, -1, -1, -1.0, 2, 44100, 4921666, -1, -1)
  E/ExoPlayerImplInternal: Internal track renderer error.
                           com.google.android.gms.ads.exoplayer1.d: com.google.android.gms.ads.exoplayer1.t: Decoder init failed: [-49998], MediaFormat(audio/mp4a-latm, 16, -1, -1, -1.0, 2, 44100, 4921666, -1, -1)
  ...
  W/Ads: ExoPlayer failed during precache: PlayerError Exception: com.google.android.gms.ads.exoplayer1.t: Decoder init failed: [-49998], MediaFormat(audio/mp4a-latm, 16, -1, -1, -1.0, 2, 44100, 4921666, -1, -1)
  W/Ads: Failed to preload url gcache://video/media/8744318498482049952?url=https://www.youtube.com/get_video%3Fvideo_id%3DeVoPWFDmU6A%26ts%3D1527455824%26t%3D0xl-clkGaPYoJY-TQD0kRV3-cVE%26gad%3D1%26br%3D1%26itag%3D18&amp;tag.duration=5000&amp;tag.check_url=https://www.youtube.com/get_video%3Fvideo_id%3DeVoPWFDmU6A%26ts%3D1527455824%26t%3D0xl-clkGaPYoJY-TQD0kRV3-cVE%26gad%3D1%26br%3D1%26itag%3D18 Exception: Abort requested before buffering finished. 
  W/Ads: Failed to load ad: 0
  W/Ads: Failed to load ad: 3
  </code></pre>
  
  <p>First I thought it could be the version of Exoplayer (1.3.1) which is a bit outdated, but then I've tried to run the exoplayer demo and it looks like my device doesn't have the right decoder:</p>
  
  <pre><code>I/ExoPlayerImpl: Init 424158b8 [ExoPlayerLib/2.8.1] [golden, GT-I8190, samsung, 18]
  W/IMASDK: Invalid internal message, ignoring. Please make sure the Google IMA SDK library is up to date. Message: gmsg://afma.google.com/activityMonitor?type=getPageSignals&amp;sid=649203f5-e3fb-4dae-ae2c-e98f4a0e4a0e&amp;dt=1527458767639
  I/OMXClient: Using client-side OMX mux.
  E/MediaCodecUtil: Failed to query codec OMX.ST.aac.decoder (audio/mp4a-latm)
  E/ExoPlayerImplInternal: Playback error.
                           com.google.android.exoplayer2.ExoPlaybackException
                               at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.supportsFormat(MediaCodecRenderer.java:302)
                               at com.google.android.exoplayer2.trackselection.MappingTrackSelector.findRenderer(MappingTrackSelector.java:435)
                               at com.google.android.exoplayer2.trackselection.MappingTrackSelector.selectTracks(MappingTrackSelector.java:344)
                               at com.google.android.exoplayer2.MediaPeriodHolder.selectTracks(MediaPeriodHolder.java:162)
                               at com.google.android.exoplayer2.MediaPeriodHolder.handlePrepared(MediaPeriodHolder.java:143)
                               at com.google.android.exoplayer2.ExoPlayerImplInternal.handlePeriodPrepared(ExoPlayerImplInternal.java:1507)
                               at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:316)
                               at android.os.Handler.dispatchMessage(Handler.java:95)
                               at android.os.Looper.loop(Looper.java:137)
                               at android.os.HandlerThread.run(HandlerThread.java:61)
                            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:281)
                               at com.google.android.exoplayer2.mediacodec.MediaCodecUtil.getDecoderInfos(MediaCodecUtil.java:150)
  </code></pre>
  
  <p>My <code>build.gradle</code></p>
  
  <pre><code>compileSdkVersion 27
  defaultConfig {
      applicationId "com.test.app"
      minSdkVersion 16
      targetSdkVersion 27
      versionCode 1
      versionName "test reward videos"
  }
  </code></pre>
  
  <p>So my question is, how can I add the missing decoder?</p>