void ExtendedCodec::configureFramePackingFormat( const sp<MetaData> &meta, sp<IOMX> OMXhandle, IOMX::node_id nodeID) { sp<AMessage> msg = new AMessage(); msg->clear(); convertMetaDataToMessage(meta, &msg); configureFramePackingFormat(msg, OMXhandle, nodeID); }
status_t ExtendedCodec::setWMAFormat( const sp<MetaData> &meta, sp<IOMX> OMXhandle, IOMX::node_id nodeID, bool isEncoder ) { sp<AMessage> msg = new AMessage(); msg->clear(); convertMetaDataToMessage(meta, &msg); return setWMAFormat(msg, OMXhandle, nodeID, isEncoder); }
void ExtendedCodec::configureVideoDecoder( const sp<MetaData> &meta, const char* mime, sp<IOMX> OMXhandle, const uint32_t flags, IOMX::node_id nodeID, const char* componentName ) { sp<AMessage> msg = new AMessage(); msg->clear(); convertMetaDataToMessage(meta, &msg); configureVideoDecoder(msg, mime, OMXhandle, flags, nodeID, componentName); }
status_t FFMPEGSoftCodec::setAudioFormat( const sp<MetaData> &meta, const char* mime, sp<IOMX> OMXhandle, IOMX::node_id nodeID, bool isEncoder ) { sp<AMessage> msg = new AMessage(); msg->clear(); convertMetaDataToMessage(meta, &msg); return setAudioFormat(msg, mime, OMXhandle, nodeID, isEncoder); }
sp<AMessage> DashPlayer::Decoder::makeFormat(const sp<MetaData> &meta) { CHECK(mCSD.isEmpty()); sp<AMessage> msg; uint32_t type; const void *data; size_t size; CHECK_EQ(convertMetaDataToMessage(meta, &msg), (status_t)OK); int32_t value; if (meta->findInt32(kKeySmoothStreaming, &value)) { msg->setInt32("smooth-streaming", value); } if (meta->findInt32(kKeyIsDRM, &value)) { msg->setInt32("secure-op", 1); } if (meta->findInt32(kKeyRequiresSecureBuffers, &value)) { msg->setInt32("requires-secure-buffers", 1); } if (meta->findInt32(kKeyEnableDecodeOrder, &value)) { msg->setInt32("decodeOrderEnable", value); } if (meta->findData(kKeyAacCodecSpecificData, &type, &data, &size)) { if (size > 0 && data != NULL) { sp<ABuffer> buffer = new ABuffer(size); if (buffer != NULL) { memcpy(buffer->data(), data, size); buffer->meta()->setInt32("csd", true); buffer->meta()->setInt64("timeUs", 0); msg->setBuffer("csd-0", buffer); } else { ALOGE("kKeyAacCodecSpecificData ABuffer Allocation failed"); } } else { ALOGE("Not a valid data pointer or size == 0"); } } mCSDIndex = 0; for (size_t i = 0;; ++i) { sp<ABuffer> csd; if (!msg->findBuffer(StringPrintf("csd-%d", i).c_str(), &csd)) { break; } mCSD.push(csd); } return msg; }
status_t FFMPEGSoftCodec::setVideoFormat( const sp<MetaData> &meta, const char* mime, sp<IOMX> OMXhandle, IOMX::node_id nodeID, bool isEncoder, OMX_VIDEO_CODINGTYPE *compressionFormat) { sp<AMessage> msg = new AMessage(); msg->clear(); convertMetaDataToMessage(meta, &msg); return setVideoFormat(msg, mime, OMXhandle, nodeID, isEncoder, compressionFormat); }
status_t NuMediaExtractor::getTrackFormat( size_t index, sp<AMessage> *format) const { Mutex::Autolock autoLock(mLock); *format = NULL; if (mImpl == NULL) { return -EINVAL; } if (index >= mImpl->countTracks()) { return -ERANGE; } sp<MetaData> meta = mImpl->getTrackMetaData(index); return convertMetaDataToMessage(meta, format); }
sp<AMessage> NuPlayer::HTTPLiveSource::getFormat(bool audio) { sp<MetaData> meta; status_t err = -EWOULDBLOCK; if (mLiveSession != NULL) { err = mLiveSession->getStreamFormatMeta( audio ? LiveSession::STREAMTYPE_AUDIO : LiveSession::STREAMTYPE_VIDEO, &meta); } sp<AMessage> format; if (err == -EWOULDBLOCK) { format = new AMessage(); format->setInt32("err", err); return format; } if (err != OK || convertMetaDataToMessage(meta, &format) != OK) { return NULL; } return format; }