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; }
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; }