Hi all,
nBitPerSample was removed from OMX_AUDIO_PARAM_AMRTYPE in OMX_Audio.h for the update to the spec 1.1.1 (refer to OpenMAX™ Integration Layer Application Programming Interface Specification Errata
Version 1.1.1, AMR Parameter Information Update).
Wont this create problems for components which are built with 1.1.0 spec headers?
The struct in 1.1.0 was...

Code :
/** AMR params */
typedef struct OMX_AUDIO_PARAM_AMRTYPE {
    OMX_U32 nSize;                          /**< size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;               /**< OMX specification version information */
    OMX_U32 nPortIndex;                     /**< port that this structure applies to */
    OMX_U32 nChannels;                      /**< Number of channels */
    OMX_U32 nBitRate;                       /**< Bit rate read only field */
    OMX_AUDIO_AMRBANDMODETYPE eAMRBandMode; /**< AMR Band Mode enumeration */ 
    OMX_U32 nBitPerSample;                  /**< Bit per sample.  If nBitPerSample = 0, 
                                                 use the value from eAMRBandMode */
    OMX_AUDIO_AMRDTXMODETYPE  eAMRDTXMode;  /**< AMR DTX Mode enumeration */
    OMX_AUDIO_AMRFRAMEFORMATTYPE eAMRFrameFormat; /**< AMR frame format enumeration */
} OMX_AUDIO_PARAM_AMRTYPE;

Now it has become...


Code :
/** AMR params */
typedef struct OMX_AUDIO_PARAM_AMRTYPE {
    OMX_U32 nSize;                          /**< size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;               /**< OMX specification version information */
    OMX_U32 nPortIndex;                     /**< port that this structure applies to */
    OMX_U32 nChannels;                      /**< Number of channels */
    OMX_U32 nBitRate;                       /**< Bit rate read only field */
    OMX_AUDIO_AMRBANDMODETYPE eAMRBandMode; /**< AMR Band Mode enumeration */ 
    OMX_AUDIO_AMRDTXMODETYPE  eAMRDTXMode;  /**< AMR DTX Mode enumeration */
    OMX_AUDIO_AMRFRAMEFORMATTYPE eAMRFrameFormat; /**< AMR frame format enumeration */
} OMX_AUDIO_PARAM_AMRTYPE;

So if a component built with 1.1.1 tries to access (GetParam) eAMRDTXMode of a component built with 1.1.0, and the 1.1.0 component is doing a memcpy for the entire struct, then the calling component would end up with an incorrect interpretation of eAMRDTXMode and the fields that follow.