Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 801a3ff8 authored by Chong Zhang's avatar Chong Zhang Committed by Android (Google) Code Review
Browse files

Merge "handle case OMX_AUDIO_CodingG711 in ACodec::getPortFormat" into lmp-dev

parents 7225187b 10d023be
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -3458,6 +3458,32 @@ status_t ACodec::getPortFormat(OMX_U32 portIndex, sp<AMessage> &notify) {
                    break;
                }

                case OMX_AUDIO_CodingG711:
                {
                    OMX_AUDIO_PARAM_PCMMODETYPE params;
                    InitOMXParams(&params);
                    params.nPortIndex = portIndex;

                    CHECK_EQ((status_t)OK, mOMX->getParameter(
                            mNode,
                            (OMX_INDEXTYPE)OMX_IndexParamAudioPcm,
                            &params,
                            sizeof(params)));

                    const char *mime = NULL;
                    if (params.ePCMMode == OMX_AUDIO_PCMModeMULaw) {
                        mime = MEDIA_MIMETYPE_AUDIO_G711_MLAW;
                    } else if (params.ePCMMode == OMX_AUDIO_PCMModeALaw) {
                        mime = MEDIA_MIMETYPE_AUDIO_G711_ALAW;
                    } else { // params.ePCMMode == OMX_AUDIO_PCMModeLinear
                        mime = MEDIA_MIMETYPE_AUDIO_RAW;
                    }
                    notify->setString("mime", mime);
                    notify->setInt32("channel-count", params.nChannels);
                    notify->setInt32("sample-rate", params.nSamplingRate);
                    break;
                }

                default:
                    ALOGE("UNKNOWN AUDIO CODING: %d\n", audioDef->eEncoding);
                    TRESPASS();
+8 −1
Original line number Diff line number Diff line
@@ -117,7 +117,14 @@ OMX_ERRORTYPE SoftG711::internalGetParameter(
            pcmParams->eEndian = OMX_EndianBig;
            pcmParams->bInterleaved = OMX_TRUE;
            pcmParams->nBitPerSample = 16;
            if (pcmParams->nPortIndex == 0) {
                // input port
                pcmParams->ePCMMode = mIsMLaw ? OMX_AUDIO_PCMModeMULaw
                                              : OMX_AUDIO_PCMModeALaw;
            } else {
                // output port
                pcmParams->ePCMMode = OMX_AUDIO_PCMModeLinear;
            }
            pcmParams->eChannelMapping[0] = OMX_AUDIO_ChannelLF;
            pcmParams->eChannelMapping[1] = OMX_AUDIO_ChannelRF;