コード例 #1
0
ファイル: MpeIPPGAmr.cpp プロジェクト: Jaroslav23/sipxtapi
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(&params);
   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();
}
コード例 #2
0
ファイル: MpdSipxL16.cpp プロジェクト: Jaroslav23/sipxtapi
MpdSipxL16::MpdSipxL16(int payloadType, int samplesPerSec)
: MpDecoderBase(payloadType, getCodecInfo(samplesPerSec))
{
}
コード例 #3
0
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);
    }
}