sp<MetaData> NuPlayer::HTTPLiveSource::getFormatMeta(bool audio) {
    sp<AMessage> format = getFormat(audio);

    if (format == NULL) {
        return NULL;
    }

    sp<MetaData> meta = new MetaData;
    convertMessageToMetaData(format, meta);

    return meta;
}
示例#2
0
ssize_t MediaMuxer::addTrack(const sp<AMessage> &format) {
    Mutex::Autolock autoLock(mMuxerLock);

    if (format.get() == NULL) {
        ALOGE("addTrack() get a null format");
        return -EINVAL;
    }

    if (mState != INITIALIZED) {
        ALOGE("addTrack() must be called after constructor and before start().");
        return INVALID_OPERATION;
    }

    sp<MetaData> trackMeta = new MetaData;
    convertMessageToMetaData(format, trackMeta);

    sp<MediaAdapter> newTrack = new MediaAdapter(trackMeta);
    status_t result = mWriter->addSource(newTrack);
    if (result == OK) {
        return mTrackList.add(newTrack);
    }
    return -1;
}