Remove RefBase from the extractor API
- Add MetaDataBase base class that MetaData derives from, but which
does not derive from RefBase.
- MediaBuffer::meta_data() now returns a MetaDataBase& rather than an
sp<MetaData>
- Rename MediaSourceBase to MediaTrack.
- MediaSource no longer derives from MediaSourceBase (or MediaTrack)
- MediaTrack::getFormat(), MediaExtractor::getTrackMetaData() and
MediaExtractor::getMetaData() all take a MetaDataBase& parameter that
they fill out, rather than returning a MetaData directly (the
corresponding methods on MediaSource and RemoteMediaExtractor continue
to return MetaData)
Bug: 67908544
Test: CTS MediaPlayerTest, DecoderTest, EncodeDecodeTest, manually record video
Change-Id: Ib531ab309061290be33d40d6100c9a8127e22083
diff --git a/media/libmediaplayerservice/nuplayer/GenericSource.cpp b/media/libmediaplayerservice/nuplayer/GenericSource.cpp
index b0c82f2..49e3555 100644
--- a/media/libmediaplayerservice/nuplayer/GenericSource.cpp
+++ b/media/libmediaplayerservice/nuplayer/GenericSource.cpp
@@ -1180,7 +1180,7 @@
if (audio && mAudioIsVorbis) {
int32_t numPageSamples;
- if (!mb->meta_data()->findInt32(kKeyValidSamples, &numPageSamples)) {
+ if (!mb->meta_data().findInt32(kKeyValidSamples, &numPageSamples)) {
numPageSamples = -1;
}
@@ -1191,12 +1191,12 @@
sp<AMessage> meta = ab->meta();
int64_t timeUs;
- CHECK(mb->meta_data()->findInt64(kKeyTime, &timeUs));
+ CHECK(mb->meta_data().findInt64(kKeyTime, &timeUs));
meta->setInt64("timeUs", timeUs);
if (trackType == MEDIA_TRACK_TYPE_VIDEO) {
int32_t layerId;
- if (mb->meta_data()->findInt32(kKeyTemporalLayerId, &layerId)) {
+ if (mb->meta_data().findInt32(kKeyTemporalLayerId, &layerId)) {
meta->setInt32("temporal-layer-id", layerId);
}
}
@@ -1209,7 +1209,7 @@
}
int64_t durationUs;
- if (mb->meta_data()->findInt64(kKeyDuration, &durationUs)) {
+ if (mb->meta_data().findInt64(kKeyDuration, &durationUs)) {
meta->setInt64("durationUs", durationUs);
}
@@ -1220,14 +1220,14 @@
uint32_t dataType; // unused
const void *seiData;
size_t seiLength;
- if (mb->meta_data()->findData(kKeySEI, &dataType, &seiData, &seiLength)) {
+ if (mb->meta_data().findData(kKeySEI, &dataType, &seiData, &seiLength)) {
sp<ABuffer> sei = ABuffer::CreateAsCopy(seiData, seiLength);;
meta->setBuffer("sei", sei);
}
const void *mpegUserDataPointer;
size_t mpegUserDataLength;
- if (mb->meta_data()->findData(
+ if (mb->meta_data().findData(
kKeyMpegUserData, &dataType, &mpegUserDataPointer, &mpegUserDataLength)) {
sp<ABuffer> mpegUserData = ABuffer::CreateAsCopy(mpegUserDataPointer, mpegUserDataLength);
meta->setBuffer("mpegUserData", mpegUserData);
@@ -1359,8 +1359,8 @@
for (; id < count; ++id) {
int64_t timeUs;
MediaBufferBase *mbuf = mediaBuffers[id];
- if (!mbuf->meta_data()->findInt64(kKeyTime, &timeUs)) {
- mbuf->meta_data()->dumpToLog();
+ if (!mbuf->meta_data().findInt64(kKeyTime, &timeUs)) {
+ mbuf->meta_data().dumpToLog();
track->mPackets->signalEOS(ERROR_MALFORMED);
break;
}