MpeIPPGAmr::MpeIPPGAmr(int payloadType, int bitRate, UtlBoolean bOctetAligned) : MpEncoderBase(payloadType, getCodecInfo()) , m_bitrate(bitRate) , m_bOctetAligned(bOctetAligned) , m_storedFramesCount(0) , m_amrPacketizer(NULL) , m_pInputBuffer(NULL) , m_pOutputBuffer(NULL) { m_pCodec = (LoadedCodec*)malloc(sizeof(LoadedCodec)); memset(m_pCodec, 0, sizeof(LoadedCodec)); m_amrPacketizer = new UMC::AMRPacketizer(); UMC::AMRPacketizerParams params; params.m_CodecType = UMC::NB; params.m_InterleavingFlag = 0; params.m_ptType = bOctetAligned ? UMC::OctetAlign : UMC::BandEfficient; UMC::Status result = m_amrPacketizer->Init(¶ms); assert(result == USC_NoError); UMC::AMRControlParams controlParams; // use default values result = m_amrPacketizer->SetControls(&controlParams); assert(result == USC_NoError); m_pMediaData = new UMC::SpeechData(); m_pAmrData = new UMC::SpeechData(); }
MpdSipxL16::MpdSipxL16(int payloadType, int samplesPerSec) : MpDecoderBase(payloadType, getCodecInfo(samplesPerSec)) { }
status_t BnMediaCodecList::onTransact( uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) { switch (code) { case COUNT_CODECS: { CHECK_INTERFACE(IMediaCodecList, data, reply); size_t count = countCodecs(); if (count > INT32_MAX) { count = INT32_MAX; } reply->writeInt32(count); return NO_ERROR; } break; case GET_CODEC_INFO: { CHECK_INTERFACE(IMediaCodecList, data, reply); size_t index = static_cast<size_t>(data.readInt32()); const sp<MediaCodecInfo> info = getCodecInfo(index); if (info != NULL) { reply->writeInt32(OK); info->writeToParcel(reply); } else { reply->writeInt32(-ERANGE); } return NO_ERROR; } break; case FIND_CODEC_BY_TYPE: { CHECK_INTERFACE(IMediaCodecList, data, reply); const char *type = data.readCString(); bool isEncoder = static_cast<bool>(data.readInt32()); size_t startIndex = static_cast<size_t>(data.readInt32()); ssize_t index = findCodecByType(type, isEncoder, startIndex); if (index > INT32_MAX || index < 0) { index = NAME_NOT_FOUND; } reply->writeInt32(index); return NO_ERROR; } break; case FIND_CODEC_BY_NAME: { CHECK_INTERFACE(IMediaCodecList, data, reply); const char *name = data.readCString(); ssize_t index = findCodecByName(name); if (index > INT32_MAX || index < 0) { index = NAME_NOT_FOUND; } reply->writeInt32(index); return NO_ERROR; } break; default: return BBinder::onTransact(code, data, reply, flags); } }