1

I'm just trying to reproduce a mp3 file placed in getApplicationDocumentsDirectory, using Just Audio library (just_audio: ^0.9.29), but after 43 seconds (for that specific file) the app crashes with the following log

V/AutofillManager(24351): requestHideFillUi(null): anchor = null
I/ExoPlayerImpl(24351): Init a42cd27 [ExoPlayerLib/2.17.1] [OnePlus8Pro, IN2023, OnePlus, 31]
W/example.youtun(24351): Accessing hidden method Landroid/media/AudioTrack;->getLatency()I (unsupported, reflection, allowed)
D/AudioManagerExtImpl(24351): getStreamVolume packageName=com.example.youtune, index=4, streamType=3
W/AudioCapabilities(24351): Unsupported mime audio/ffmpeg
W/VideoCapabilities(24351): Unsupported mime image/vnd.android.heic
W/VideoCapabilities(24351): Unsupported mime video/ffmpeg
2
W/VideoCapabilities(24351): Unrecognized profile/level 0/3 for video/mpeg2
2
W/AudioCapabilities(24351): Unsupported mime audio/ozoaudio
I/DMCodecAdapterFactory(24351): Creating an asynchronous MediaCodec adapter for track type audio
E/Parcel  (24351): Reading a NULL string not supported here.
D/OplusCCodec(24351): OplusCCodec [120]: (0xb400007e00db3980)
D/CCodec  (24351): allocate(c2.android.mp3.decoder)
I/Codec2Client(24351): Available Codec2 services: "ozoaudio" "software"
I/CCodec  (24351): Created component [c2.android.mp3.decoder]
D/CCodecConfig(24351): read media type: audio/mpeg
D/ReflectedParamUpdater(24351): extent() != 1 for single value type: algo.buffers.max-count.values
D/ReflectedParamUpdater(24351): extent() != 1 for single value type: output.subscribed-indices.values
D/ReflectedParamUpdater(24351): extent() != 1 for single value type: input.buffers.allocator-ids.values
D/ReflectedParamUpdater(24351): extent() != 1 for single value type: output.buffers.allocator-ids.values
D/ReflectedParamUpdater(24351): extent() != 1 for single value type: algo.buffers.allocator-ids.values
D/ReflectedParamUpdater(24351): extent() != 1 for single value type: output.buffers.pool-ids.values
D/ReflectedParamUpdater(24351): extent() != 1 for single value type: algo.buffers.pool-ids.values
I/CCodecConfig(24351): query failed after returning 7 values (BAD_INDEX)
D/CCodecConfig(24351): c2 config diff is Dict {
D/CCodecConfig(24351):   c2::u32 coded.bitrate.value = 64000
D/CCodecConfig(24351):   c2::u32 input.buffers.max-size.value = 8192
D/CCodecConfig(24351):   c2::u32 input.delay.value = 0
D/CCodecConfig(24351):   string input.media-type.value = "audio/mpeg"
D/CCodecConfig(24351):   string output.media-type.value = "audio/raw"
D/CCodecConfig(24351):   c2::u32 raw.channel-count.value = 2
D/CCodecConfig(24351):   c2::u32 raw.sample-rate.value = 44100
D/CCodecConfig(24351): }
I/MediaCodec(24351): MediaCodec will operate in async mode
I/MediaCodec(24351): [c2.android.mp3.decoder] configure, format : AMessage(what = 0x00000000) = {
I/MediaCodec(24351):   int32_t sample-rate = 44100
I/MediaCodec(24351):   string mime = "audio/mpeg"
I/MediaCodec(24351):   int32_t channel-count = 2
I/MediaCodec(24351):   int32_t priority = 0
I/MediaCodec(24351):   int32_t max-input-size = 4096
I/MediaCodec(24351): }
D/OplusCCodec(24351): [initiateConfigureComponent:L256] OplusFeedbackInfo  mFeedbackID:-5476376605702276736
D/CCodec  (24351): [c2.android.mp3.decoder] buffers are bound to CCodec for this session
D/CCodecConfig(24351): no c2 equivalents for flags
D/CCodecConfig(24351): config failed => CORRUPTED
W/Codec2Client(24351): query -- param skipped: index = 1107298332.
D/CCodec  (24351): client requested max input size 4096, which is smaller than what component recommended (8192); overriding with component recommendation.
W/CCodec  (24351): This behavior is subject to change. It is recommended that app developers double check whether the requested max input size is in reasonable range.
D/CCodec  (24351): setup formats input: AMessage(what = 0x00000000) = {
D/CCodec  (24351):   int32_t bitrate = 64000
D/CCodec  (24351):   int32_t channel-count = 2
D/CCodec  (24351):   int32_t max-input-size = 8192
D/CCodec  (24351):   string mime = "audio/mpeg"
D/CCodec  (24351):   int32_t sample-rate = 44100
D/CCodec  (24351): }
D/CCodec  (24351): setup formats output: AMessage(what = 0x00000000) = {
D/CCodec  (24351):   int32_t channel-count = 2
D/CCodec  (24351):   string mime = "audio/raw"
D/CCodec  (24351):   int32_t sample-rate = 44100
D/CCodec  (24351):   int32_t android._config-pcm-encoding = 2
D/CCodec  (24351): }
I/CCodecConfig(24351): query failed after returning 7 values (BAD_INDEX)
D/MediaCodec(24351): keep callback message for reclaim
W/Codec2Client(24351): query -- param skipped: index = 1342179345.
W/Codec2Client(24351): query -- param skipped: index = 2415921170.
D/C2Store (24351): Using ION
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] Created input block pool with allocatorID 16 => poolID 17 - OK (0)
I/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] Created output block pool with allocatorID 16 => poolID 1142 - OK
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] Configured output block pool ids 1142 => OK
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] start: updating output delay 0
E/ion     (24351): ioctl c0044901 failed with code -1: Inappropriate ioctl for device
D/AudioTrackExtImpl(24351): AudioTrackExtImpl init
D/AudioTrackExtImpl(24351): audioTrackTest
D/AudioTrack(24351): set() streamType -1, sampleRate 44100, format 0x1, channelMask 0x3, frameCount 14144, flags #0, notificationFrames 0, sessionId 13137, transferType 3, uid -1, pid -1 cbf 1
D/AudioTrack(24351): set(): Building AudioTrack with attributes: usage=1 content=2 flags=0xa00 tags=[]
I/AudioTrack(24351): createTrack_l(2088) on outputId(21) : 0xb400007e07887300, mCblk = 0x7f321c6000,  mLatency = 400, mAfLatency = 80, frameCount = 14144, mSampleRate = 44100, mFlags = 0x8, mReqFrameCount = 14144, mNotificationFramesAct = 7072
D/ListServiceUtils(24351): mListServiceUtils::init CallingPid 24351
D/ListServiceUtils(24351): mListServiceUtils::init this 0xb400007e8b36cb80
D/AudioTrack(24351): setVolume left 1.000 right 1.000 , callingPid 24351
D/AudioTrack(24351): start(2088): prior state:STATE_STOPPED output 21 stream 3 session 13137
D/AudioTrack(24351): getTimestamp_l(2088): device stall time corrected using current time 232797429092912
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] DEBUG: elapsed: n=4 [in=0 pipeline=0 out=0]
D/PipelineWatcher(24351): DEBUG: elapsed 0 / 4
D/BufferPoolAccessor2.0(24351): bufferpool2 0xb400007e8b7cdc28 : 5(40960 size) total buffers - 1(8192 size) used buffers - 211/216 (recycle/alloc) - 5/428 (fetch/transfer)
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] DEBUG: elapsed: n=4 [in=0 pipeline=0 out=0]
D/PipelineWatcher(24351): DEBUG: elapsed 0 / 4
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] DEBUG: elapsed: n=4 [in=0 pipeline=0 out=0]
D/PipelineWatcher(24351): DEBUG: elapsed 0 / 4
D/BufferPoolAccessor2.0(24351): bufferpool2 0xb400007e8b7cdc28 : 5(40960 size) total buffers - 1(8192 size) used buffers - 407/412 (recycle/alloc) - 5/820 (fetch/transfer)
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] DEBUG: elapsed: n=4 [in=0 pipeline=0 out=0]
D/PipelineWatcher(24351): DEBUG: elapsed 0 / 4
D/BufferPoolAccessor2.0(24351): bufferpool2 0xb400007e8b7cdc28 : 5(40960 size) total buffers - 1(8192 size) used buffers - 607/612 (recycle/alloc) - 5/1220 (fetch/transfer)
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] DEBUG: elapsed: n=4 [in=0 pipeline=0 out=0]
D/PipelineWatcher(24351): DEBUG: elapsed 0 / 4
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] DEBUG: elapsed: n=4 [in=0 pipeline=0 out=0]
D/PipelineWatcher(24351): DEBUG: elapsed 0 / 4
D/BufferPoolAccessor2.0(24351): bufferpool2 0xb400007e8b7cdc28 : 5(40960 size) total buffers - 1(8192 size) used buffers - 803/808 (recycle/alloc) - 5/1612 (fetch/transfer)
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] DEBUG: elapsed: n=4 [in=0 pipeline=0 out=0]
D/PipelineWatcher(24351): DEBUG: elapsed 0 / 4
D/BufferPoolAccessor2.0(24351): bufferpool2 0xb400007e8b7cdc28 : 5(40960 size) total buffers - 1(8192 size) used buffers - 1004/1009 (recycle/alloc) - 5/2014 (fetch/transfer)
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] DEBUG: elapsed: n=4 [in=0 pipeline=0 out=0]
D/PipelineWatcher(24351): DEBUG: elapsed 0 / 4
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] DEBUG: elapsed: n=4 [in=0 pipeline=0 out=0]
D/PipelineWatcher(24351): DEBUG: elapsed 0 / 4
D/BufferPoolAccessor2.0(24351): bufferpool2 0xb400007e8b7cdc28 : 5(40960 size) total buffers - 1(8192 size) used buffers - 1204/1209 (recycle/alloc) - 5/2414 (fetch/transfer)
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] DEBUG: elapsed: n=4 [in=0 pipeline=0 out=0]
D/PipelineWatcher(24351): DEBUG: elapsed 0 / 4
D/BufferPoolAccessor2.0(24351): bufferpool2 0xb400007e8b7cdc28 : 5(40960 size) total buffers - 1(8192 size) used buffers - 1400/1405 (recycle/alloc) - 5/2806 (fetch/transfer)
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] DEBUG: elapsed: n=4 [in=0 pipeline=0 out=0]
D/PipelineWatcher(24351): DEBUG: elapsed 0 / 4
D/CCodecBufferChannel(24351): [c2.android.mp3.decoder#431] DEBUG: elapsed: n=4 [in=0 pipeline=0 out=0]
D/PipelineWatcher(24351): DEBUG: elapsed 0 / 4
D/BufferPoolAccessor2.0(24351): bufferpool2 0xb400007e8b7cdc28 : 5(40960 size) total buffers - 1(8192 size) used buffers - 1596/1601 (recycle/alloc) - 5/3198 (fetch/transfer)
D/AudioTrack(24351): stop(2088): prior state:STATE_ACTIVE output 21 stream 3 session 13137
D/AudioTrack(24351): stop(2088): called with 1923840 frames delivered
D/PipelineWatcher(24351): DEBUG: elapsed 0 / 0
D/BufferPoolAccessor2.0(24351): bufferpool2 0xb400007e8b7cdc28 : 5(40960 size) total buffers - 3(24576 size) used buffers - 1670/1675 (recycle/alloc) - 5/3340 (fetch/transfer)
D/BufferPoolAccessor2.0(24351): evictor expired: 1, evicted: 1
V/AutofillManager(24351): requestHideFillUi(null): anchor = null

any idea what's wrong

Donovant
  • 3,091
  • 8
  • 40
  • 68
  • Those look like strange MIME types. Maybe it's your particular phone with a weird variant of Android that gives the wrong MIME type. You could try playing it through `StreamAudioSource` where you can control the MIME type. I'm also not sure why one of the MIME types is audio/ozoaudio. Is that really caused by just_audio or is there something else in your app doing that? – Ryan Heise Oct 06 '22 at 12:08
  • @RyanHeise I'm using a One+ 8 Pro, the mp3 is generated by NodeJs using ```/usr/local/bin/ffmpeg``` – Donovant Oct 06 '22 at 13:04
  • 1
    That's an important part of your question. Without mentioning it, I incorrectly assumed you were using a phone that used ffmpeg under the hood. It will help if you update your question to mention how you created the file to understand what encoding it is. Maybe it's not really a valid mp3 file. – Ryan Heise Oct 06 '22 at 15:51

0 Answers0