[Bug 740101] New: amcaudiodec error: 'first buffer should have OMX_BUFFERFLAG_CODECCONFIG set'

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Nov 13 19:14:53 PST 2014


https://bugzilla.gnome.org/show_bug.cgi?id=740101
  GStreamer | gst-plugins-bad | 1.4.4

           Summary: amcaudiodec error: 'first buffer should have
                    OMX_BUFFERFLAG_CODECCONFIG set'
    Classification: Platform
           Product: GStreamer
           Version: 1.4.4
        OS/Version: other
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: jonas at hallerud.se
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=290679)
 --> (https://bugzilla.gnome.org/attachment.cgi?id=290679)
gst logs

Environment: Google Nexus 9, Android 5.0 (L), non custom factory image,
official 1.4.4 Android debug binaries
App: Unmodified gst sdk tutorial 5

Error description:
Tested out the latest Android binaries for kicks, fail to play back lots of
streams.

11-13 17:33:16.110  5481  5773 D GStreamer+amcaudiodec: 0:26:00.482850462
0xab9894f0
gstamcaudiodec.c:775:gst_amc_audio_dec_set_format:<amcaudiodec-omxgoogleaacdecoder2>
Setting new caps audio/mpeg, framed=(boolean)true, mpegversion=(int)4,
level=(string)1, base-profile=(string)lc, profile=(string)lc, rate=(int)24000,
channels=(int)2, stream-format=(string)adts
11-13 17:33:16.110  5481  5773 D GStreamer+amcaudiodec: 0:26:00.482993212
0xab9894f0
gstamcaudiodec.c:891:gst_amc_audio_dec_set_format:<amcaudiodec-omxgoogleaacdecoder2>
Configuring codec with format: {channel-count=2, mime=audio/mp4a-latm,
sample-rate=24000}
11-13 17:33:16.118  5481  5777 E SoftAAC2: first buffer should have
OMX_BUFFERFLAG_CODECCONFIG set
11-13 17:33:16.118  5481  5777 W SoftAAC2: aacDecoder_ConfigRaw decoderErr =
0x2003
11-13 17:33:16.118  5481  5776 E ACodec  : [OMX.google.aac.decoder]
ERROR(0x80001001)
11-13 17:33:16.121  5481  5779 E GStreamer+amcaudiodec: 0:26:00.494109128
0xab7cb000
gstamcaudiodec.c:476:gst_amc_audio_dec_loop:<amcaudiodec-omxgoogleaacdecoder2>
Failure dequeueing output buffer
11-13 17:33:16.121  5481  5779 W GStreamer+amcaudiodec: 0:26:00.494204545
0xab7cb000
gstamcaudiodec.c:590:gst_amc_audio_dec_loop:<amcaudiodec-omxgoogleaacdecoder2>
error: Failed to dequeue output buffer: java.lang.IllegalStateException
More complete log and media sample attached.

It appears that amcaudiodec advertises support for AAC in adts format. aacparse
isn't producing any "codec_data" or "stream_header" so no "csd-0" parameter is
set. Furthermore, the equivalent of
mediaFormat.setInteger(MediaFormat.KEY_IS_ADTS, 1); 
isn't done either. MediaCodec therefore assumes raw AAC and expects the first
buffer to contain ESDS and have the flag  MediaCodec.BUFFER_FLAG_CODEC_CONFIG
set. When that's not the case, this error is thrown.

adts AAC streams are quite common so a bug like this is a blocker for broader
adoption on Android (as is #731204)
A workaround is to compile in faad which works perfectly.

(This is based on a one time reading of the code and logs, once I figure out
how to actually build gst for android without cerbero failing left and right on
my 64 bit system looking for 32 bit libs I *may* be able to offer more insight)

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list