summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/mp3dec
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2009-12-07 16:32:37 -0800
committerAndreas Huber <andih@google.com>2009-12-07 16:41:16 -0800
commitebd0d94d2619280f9871ef2d0965d95fb880404c (patch)
tree8b71343070a2b78cb24de0751c093bbdbbd0392c /media/libstagefright/codecs/mp3dec
parentd9618f23226f46c752e56f712bc4b505117d8b4b (diff)
downloadframeworks_av-ebd0d94d2619280f9871ef2d0965d95fb880404c.zip
frameworks_av-ebd0d94d2619280f9871ef2d0965d95fb880404c.tar.gz
frameworks_av-ebd0d94d2619280f9871ef2d0965d95fb880404c.tar.bz2
Minor tweaks to the mp3 and aac software decoders, propagate duration to output format.
Diffstat (limited to 'media/libstagefright/codecs/mp3dec')
-rw-r--r--media/libstagefright/codecs/mp3dec/MP3Decoder.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/media/libstagefright/codecs/mp3dec/MP3Decoder.cpp b/media/libstagefright/codecs/mp3dec/MP3Decoder.cpp
index 45e20dc..f9193c0 100644
--- a/media/libstagefright/codecs/mp3dec/MP3Decoder.cpp
+++ b/media/libstagefright/codecs/mp3dec/MP3Decoder.cpp
@@ -78,13 +78,16 @@ sp<MetaData> MP3Decoder::getFormat() {
int32_t numChannels;
int32_t sampleRate;
+ int64_t durationUs;
CHECK(srcFormat->findInt32(kKeyChannelCount, &numChannels));
CHECK(srcFormat->findInt32(kKeySampleRate, &sampleRate));
+ CHECK(srcFormat->findInt64(kKeyDuration, &durationUs));
sp<MetaData> meta = new MetaData;
meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_AUDIO_RAW);
meta->setInt32(kKeyChannelCount, numChannels);
meta->setInt32(kKeySampleRate, sampleRate);
+ meta->setInt64(kKeyDuration, durationUs);
return meta;
}
@@ -120,6 +123,9 @@ status_t MP3Decoder::read(
if (mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs)) {
mAnchorTimeUs = timeUs;
mNumSamplesOutput = 0;
+ } else {
+ // We must have a new timestamp after seeking.
+ CHECK(seekTimeUs < 0);
}
}