diff options
author | Marco Nelissen <marcone@google.com> | 2012-08-31 11:07:37 -0700 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2012-08-31 14:14:22 -0700 |
commit | cb1f88c684140ce0eb407049a78f889bc7d51be1 (patch) | |
tree | 8aa79ee909d368f934556c12115a6d03e66ba432 /media | |
parent | 092fe44abd787fcb4377d90c63f2aa7120a4d267 (diff) | |
download | frameworks_av-cb1f88c684140ce0eb407049a78f889bc7d51be1.zip frameworks_av-cb1f88c684140ce0eb407049a78f889bc7d51be1.tar.gz frameworks_av-cb1f88c684140ce0eb407049a78f889bc7d51be1.tar.bz2 |
Move fragmented mp4 parser to libstagefright
and rename it from Parser to FragmentedMP4Parser
Change-Id: I986f50d0c5c93648aac675d6160e18623b031541
Diffstat (limited to 'media')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/Android.mk | 2 | ||||
-rw-r--r-- | media/libmediaplayerservice/nuplayer/mp4/MP4Source.cpp | 6 | ||||
-rw-r--r-- | media/libmediaplayerservice/nuplayer/mp4/MP4Source.h | 4 | ||||
-rw-r--r-- | media/libstagefright/Android.mk | 2 | ||||
-rw-r--r-- | media/libstagefright/include/FragmentedMP4Parser.h (renamed from media/libmediaplayerservice/nuplayer/mp4/Parser.h) | 10 | ||||
-rw-r--r-- | media/libstagefright/mp4/FragmentedMP4Parser.cpp (renamed from media/libmediaplayerservice/nuplayer/mp4/Parser.cpp) | 120 | ||||
-rw-r--r-- | media/libstagefright/mp4/TrackFragment.cpp (renamed from media/libmediaplayerservice/nuplayer/mp4/TrackFragment.cpp) | 48 | ||||
-rw-r--r-- | media/libstagefright/mp4/TrackFragment.h (renamed from media/libmediaplayerservice/nuplayer/mp4/TrackFragment.h) | 18 |
8 files changed, 104 insertions, 106 deletions
diff --git a/media/libmediaplayerservice/nuplayer/Android.mk b/media/libmediaplayerservice/nuplayer/Android.mk index f469054..f946c1c 100644 --- a/media/libmediaplayerservice/nuplayer/Android.mk +++ b/media/libmediaplayerservice/nuplayer/Android.mk @@ -12,8 +12,6 @@ LOCAL_SRC_FILES:= \ RTSPSource.cpp \ StreamingSource.cpp \ mp4/MP4Source.cpp \ - mp4/Parser.cpp \ - mp4/TrackFragment.cpp \ LOCAL_C_INCLUDES := \ $(TOP)/frameworks/av/media/libstagefright/httplive \ diff --git a/media/libmediaplayerservice/nuplayer/mp4/MP4Source.cpp b/media/libmediaplayerservice/nuplayer/mp4/MP4Source.cpp index 25c91e9..c80d13f 100644 --- a/media/libmediaplayerservice/nuplayer/mp4/MP4Source.cpp +++ b/media/libmediaplayerservice/nuplayer/mp4/MP4Source.cpp @@ -16,7 +16,7 @@ #include "MP4Source.h" -#include "Parser.h" +#include "FragmentedMP4Parser.h" #include "../NuPlayerStreamListener.h" #include <media/IStreamSource.h> @@ -26,7 +26,7 @@ namespace android { -struct StreamSource : public Parser::Source { +struct StreamSource : public FragmentedMP4Parser::Source { StreamSource(const sp<IStreamSource> &source) : mListener(new NuPlayer::NuPlayerStreamListener(source, 0)), mPosition(0) { @@ -103,7 +103,7 @@ private: MP4Source::MP4Source(const sp<IStreamSource> &source) : mSource(source), mLooper(new ALooper), - mParser(new Parser), + mParser(new FragmentedMP4Parser), mEOS(false) { mLooper->registerHandler(mParser); } diff --git a/media/libmediaplayerservice/nuplayer/mp4/MP4Source.h b/media/libmediaplayerservice/nuplayer/mp4/MP4Source.h index 57430aa..4e927af 100644 --- a/media/libmediaplayerservice/nuplayer/mp4/MP4Source.h +++ b/media/libmediaplayerservice/nuplayer/mp4/MP4Source.h @@ -21,7 +21,7 @@ namespace android { -struct Parser; +struct FragmentedMP4Parser; struct MP4Source : public NuPlayer::Source { MP4Source(const sp<IStreamSource> &source); @@ -41,7 +41,7 @@ protected: private: sp<IStreamSource> mSource; sp<ALooper> mLooper; - sp<Parser> mParser; + sp<FragmentedMP4Parser> mParser; bool mEOS; DISALLOW_EVIL_CONSTRUCTORS(MP4Source); diff --git a/media/libstagefright/Android.mk b/media/libstagefright/Android.mk index 3fd0f85..1522e75 100644 --- a/media/libstagefright/Android.mk +++ b/media/libstagefright/Android.mk @@ -53,6 +53,8 @@ LOCAL_SRC_FILES:= \ WVMExtractor.cpp \ XINGSeeker.cpp \ avc_utils.cpp \ + mp4/FragmentedMP4Parser.cpp \ + mp4/TrackFragment.cpp \ LOCAL_C_INCLUDES:= \ $(TOP)/frameworks/av/include/media/stagefright/timedtext \ diff --git a/media/libmediaplayerservice/nuplayer/mp4/Parser.h b/media/libstagefright/include/FragmentedMP4Parser.h index 0d8d0f5..bd8fe32 100644 --- a/media/libmediaplayerservice/nuplayer/mp4/Parser.h +++ b/media/libstagefright/include/FragmentedMP4Parser.h @@ -25,7 +25,7 @@ namespace android { struct ABuffer; -struct Parser : public AHandler { +struct FragmentedMP4Parser : public AHandler { struct Source : public RefBase { Source() {} @@ -38,7 +38,7 @@ struct Parser : public AHandler { DISALLOW_EVIL_CONSTRUCTORS(Source); }; - Parser(); + FragmentedMP4Parser(); void start(const char *filename); void start(const sp<Source> &source); @@ -49,7 +49,7 @@ struct Parser : public AHandler { virtual void onMessageReceived(const sp<AMessage> &msg); protected: - virtual ~Parser(); + virtual ~FragmentedMP4Parser(); private: enum { @@ -67,7 +67,7 @@ private: struct DispatchEntry { uint32_t mType; uint32_t mParentType; - status_t (Parser::*mHandler)(uint32_t, size_t, uint64_t); + status_t (FragmentedMP4Parser::*mHandler)(uint32_t, size_t, uint64_t); }; struct Container { @@ -246,7 +246,7 @@ private: sp<ABuffer> *dst, size_t offset, uint64_t size, size_t extra = 0) const; - DISALLOW_EVIL_CONSTRUCTORS(Parser); + DISALLOW_EVIL_CONSTRUCTORS(FragmentedMP4Parser); }; } // namespace android diff --git a/media/libmediaplayerservice/nuplayer/mp4/Parser.cpp b/media/libstagefright/mp4/FragmentedMP4Parser.cpp index f664e92..e130a80 100644 --- a/media/libmediaplayerservice/nuplayer/mp4/Parser.cpp +++ b/media/libstagefright/mp4/FragmentedMP4Parser.cpp @@ -15,13 +15,13 @@ */ //#define LOG_NDEBUG 0 -#define LOG_TAG "Parser" +#define LOG_TAG "FragmentedMP4Parser" #include <utils/Log.h> -#include "Parser.h" +#include "include/FragmentedMP4Parser.h" +#include "include/ESDS.h" #include "TrackFragment.h" -#include "ESDS.h" #include <media/stagefright/foundation/ABuffer.h> #include <media/stagefright/foundation/ADebug.h> @@ -31,8 +31,6 @@ #include <media/stagefright/MediaErrors.h> #include <media/stagefright/Utils.h> -#include "../NuPlayerStreamListener.h" - namespace android { static const char *Fourcc2String(uint32_t fourcc) { @@ -52,7 +50,7 @@ static const char *IndentString(size_t n) { } // static -const Parser::DispatchEntry Parser::kDispatchTable[] = { +const FragmentedMP4Parser::DispatchEntry FragmentedMP4Parser::kDispatchTable[] = { { FOURCC('m', 'o', 'o', 'v'), 0, NULL }, { FOURCC('t', 'r', 'a', 'k'), FOURCC('m', 'o', 'o', 'v'), NULL }, { FOURCC('u', 'd', 't', 'a'), FOURCC('t', 'r', 'a', 'k'), NULL }, @@ -61,24 +59,24 @@ const Parser::DispatchEntry Parser::kDispatchTable[] = { { FOURCC('i', 'l', 's', 't'), FOURCC('m', 'e', 't', 'a'), NULL }, { FOURCC('t', 'k', 'h', 'd'), FOURCC('t', 'r', 'a', 'k'), - &Parser::parseTrackHeader + &FragmentedMP4Parser::parseTrackHeader }, { FOURCC('m', 'v', 'e', 'x'), FOURCC('m', 'o', 'o', 'v'), NULL }, { FOURCC('t', 'r', 'e', 'x'), FOURCC('m', 'v', 'e', 'x'), - &Parser::parseTrackExtends + &FragmentedMP4Parser::parseTrackExtends }, { FOURCC('e', 'd', 't', 's'), FOURCC('t', 'r', 'a', 'k'), NULL }, { FOURCC('m', 'd', 'i', 'a'), FOURCC('t', 'r', 'a', 'k'), NULL }, { FOURCC('m', 'd', 'h', 'd'), FOURCC('m', 'd', 'i', 'a'), - &Parser::parseMediaHeader + &FragmentedMP4Parser::parseMediaHeader }, { FOURCC('h', 'd', 'l', 'r'), FOURCC('m', 'd', 'i', 'a'), - &Parser::parseMediaHandler + &FragmentedMP4Parser::parseMediaHandler }, { FOURCC('m', 'i', 'n', 'f'), FOURCC('m', 'd', 'i', 'a'), NULL }, @@ -87,45 +85,45 @@ const Parser::DispatchEntry Parser::kDispatchTable[] = { { FOURCC('s', 't', 's', 'd'), FOURCC('s', 't', 'b', 'l'), NULL }, { FOURCC('s', 't', 's', 'z'), FOURCC('s', 't', 'b', 'l'), - &Parser::parseSampleSizes }, + &FragmentedMP4Parser::parseSampleSizes }, { FOURCC('s', 't', 'z', '2'), FOURCC('s', 't', 'b', 'l'), - &Parser::parseCompactSampleSizes }, + &FragmentedMP4Parser::parseCompactSampleSizes }, { FOURCC('s', 't', 's', 'c'), FOURCC('s', 't', 'b', 'l'), - &Parser::parseSampleToChunk }, + &FragmentedMP4Parser::parseSampleToChunk }, { FOURCC('s', 't', 'c', 'o'), FOURCC('s', 't', 'b', 'l'), - &Parser::parseChunkOffsets }, + &FragmentedMP4Parser::parseChunkOffsets }, { FOURCC('c', 'o', '6', '4'), FOURCC('s', 't', 'b', 'l'), - &Parser::parseChunkOffsets64 }, + &FragmentedMP4Parser::parseChunkOffsets64 }, { FOURCC('a', 'v', 'c', 'C'), FOURCC('a', 'v', 'c', '1'), - &Parser::parseAVCCodecSpecificData }, + &FragmentedMP4Parser::parseAVCCodecSpecificData }, { FOURCC('e', 's', 'd', 's'), FOURCC('m', 'p', '4', 'a'), - &Parser::parseESDSCodecSpecificData }, + &FragmentedMP4Parser::parseESDSCodecSpecificData }, { FOURCC('e', 's', 'd', 's'), FOURCC('m', 'p', '4', 'v'), - &Parser::parseESDSCodecSpecificData }, + &FragmentedMP4Parser::parseESDSCodecSpecificData }, - { FOURCC('m', 'd', 'a', 't'), 0, &Parser::parseMediaData }, + { FOURCC('m', 'd', 'a', 't'), 0, &FragmentedMP4Parser::parseMediaData }, { FOURCC('m', 'o', 'o', 'f'), 0, NULL }, { FOURCC('t', 'r', 'a', 'f'), FOURCC('m', 'o', 'o', 'f'), NULL }, { FOURCC('t', 'f', 'h', 'd'), FOURCC('t', 'r', 'a', 'f'), - &Parser::parseTrackFragmentHeader + &FragmentedMP4Parser::parseTrackFragmentHeader }, { FOURCC('t', 'r', 'u', 'n'), FOURCC('t', 'r', 'a', 'f'), - &Parser::parseTrackFragmentRun + &FragmentedMP4Parser::parseTrackFragmentRun }, { FOURCC('m', 'f', 'r', 'a'), 0, NULL }, }; -struct FileSource : public Parser::Source { +struct FileSource : public FragmentedMP4Parser::Source { FileSource(const char *filename) : mFile(fopen(filename, "rb")) { CHECK(mFile != NULL); @@ -142,28 +140,28 @@ struct FileSource : public Parser::Source { DISALLOW_EVIL_CONSTRUCTORS(FileSource); }; -Parser::Parser() +FragmentedMP4Parser::FragmentedMP4Parser() : mBufferPos(0), mSuspended(false), mFinalResult(OK) { } -Parser::~Parser() { +FragmentedMP4Parser::~FragmentedMP4Parser() { } -void Parser::start(const char *filename) { +void FragmentedMP4Parser::start(const char *filename) { sp<AMessage> msg = new AMessage(kWhatStart, id()); msg->setObject("source", new FileSource(filename)); msg->post(); } -void Parser::start(const sp<Source> &source) { +void FragmentedMP4Parser::start(const sp<Source> &source) { sp<AMessage> msg = new AMessage(kWhatStart, id()); msg->setObject("source", source); msg->post(); } -sp<AMessage> Parser::getFormat(bool audio) { +sp<AMessage> FragmentedMP4Parser::getFormat(bool audio) { sp<AMessage> msg = new AMessage(kWhatGetFormat, id()); msg->setInt32("audio", audio); @@ -185,7 +183,7 @@ sp<AMessage> Parser::getFormat(bool audio) { return format; } -status_t Parser::dequeueAccessUnit(bool audio, sp<ABuffer> *accessUnit) { +status_t FragmentedMP4Parser::dequeueAccessUnit(bool audio, sp<ABuffer> *accessUnit) { sp<AMessage> msg = new AMessage(kWhatDequeueAccessUnit, id()); msg->setInt32("audio", audio); @@ -205,7 +203,7 @@ status_t Parser::dequeueAccessUnit(bool audio, sp<ABuffer> *accessUnit) { return OK; } -ssize_t Parser::findTrack(bool wantAudio) const { +ssize_t FragmentedMP4Parser::findTrack(bool wantAudio) const { for (size_t i = 0; i < mTracks.size(); ++i) { const TrackInfo *info = &mTracks.valueAt(i); @@ -227,7 +225,7 @@ ssize_t Parser::findTrack(bool wantAudio) const { return -EWOULDBLOCK; } -void Parser::onMessageReceived(const sp<AMessage> &msg) { +void FragmentedMP4Parser::onMessageReceived(const sp<AMessage> &msg) { switch (msg->what()) { case kWhatStart: { @@ -373,7 +371,7 @@ void Parser::onMessageReceived(const sp<AMessage> &msg) { } } -status_t Parser::onProceed() { +status_t FragmentedMP4Parser::onProceed() { status_t err; if ((err = need(8)) != OK) { @@ -565,7 +563,7 @@ status_t Parser::onProceed() { } // static -int Parser::CompareSampleLocation( +int FragmentedMP4Parser::CompareSampleLocation( const SampleInfo &sample, const MediaDataInfo &mdatInfo) { if (sample.mOffset + sample.mSize < mdatInfo.mOffset) { return -1; @@ -586,7 +584,7 @@ int Parser::CompareSampleLocation( return 0; } -void Parser::resumeIfNecessary() { +void FragmentedMP4Parser::resumeIfNecessary() { if (!mSuspended) { return; } @@ -597,7 +595,7 @@ void Parser::resumeIfNecessary() { (new AMessage(kWhatProceed, id()))->post(); } -status_t Parser::getSample( +status_t FragmentedMP4Parser::getSample( TrackInfo *info, sp<TrackFragment> *fragment, SampleInfo *sampleInfo) { for (;;) { if (info->mFragments.empty()) { @@ -625,7 +623,7 @@ status_t Parser::getSample( } } -status_t Parser::onDequeueAccessUnit( +status_t FragmentedMP4Parser::onDequeueAccessUnit( size_t trackIndex, sp<ABuffer> *accessUnit) { TrackInfo *info = &mTracks.editValueAt(trackIndex); @@ -730,7 +728,7 @@ static size_t parseNALSize(size_t nalLengthSize, const uint8_t *data) { return 0; } -status_t Parser::makeAccessUnit( +status_t FragmentedMP4Parser::makeAccessUnit( TrackInfo *info, const SampleInfo &sample, const MediaDataInfo &mdatInfo, @@ -801,7 +799,7 @@ status_t Parser::makeAccessUnit( return OK; } -status_t Parser::need(size_t size) { +status_t FragmentedMP4Parser::need(size_t size) { if (!fitsContainer(size)) { return -EINVAL; } @@ -819,7 +817,7 @@ status_t Parser::need(size_t size) { return -EAGAIN; } -void Parser::enter(off64_t offset, uint32_t type, uint64_t size) { +void FragmentedMP4Parser::enter(off64_t offset, uint32_t type, uint64_t size) { Container container; container.mOffset = offset; container.mType = type; @@ -829,32 +827,32 @@ void Parser::enter(off64_t offset, uint32_t type, uint64_t size) { mStack.push(container); } -bool Parser::fitsContainer(uint64_t size) const { +bool FragmentedMP4Parser::fitsContainer(uint64_t size) const { CHECK(!mStack.isEmpty()); const Container &container = mStack.itemAt(mStack.size() - 1); return container.mExtendsToEOF || size <= container.mBytesRemaining; } -uint16_t Parser::readU16(size_t offset) { +uint16_t FragmentedMP4Parser::readU16(size_t offset) { CHECK_LE(offset + 2, mBuffer->size()); const uint8_t *ptr = mBuffer->data() + offset; return (ptr[0] << 8) | ptr[1]; } -uint32_t Parser::readU32(size_t offset) { +uint32_t FragmentedMP4Parser::readU32(size_t offset) { CHECK_LE(offset + 4, mBuffer->size()); const uint8_t *ptr = mBuffer->data() + offset; return (ptr[0] << 24) | (ptr[1] << 16) | (ptr[2] << 8) | ptr[3]; } -uint64_t Parser::readU64(size_t offset) { +uint64_t FragmentedMP4Parser::readU64(size_t offset) { return (((uint64_t)readU32(offset)) << 32) | readU32(offset + 4); } -void Parser::skip(off_t distance) { +void FragmentedMP4Parser::skip(off_t distance) { CHECK(!mStack.isEmpty()); for (size_t i = mStack.size(); i-- > 0;) { Container *container = &mStack.editItemAt(i); @@ -916,7 +914,7 @@ void Parser::skip(off_t distance) { mBufferPos += distance; } -status_t Parser::parseTrackHeader( +status_t FragmentedMP4Parser::parseTrackHeader( uint32_t type, size_t offset, uint64_t size) { if (offset + 4 > size) { return -EINVAL; @@ -963,7 +961,7 @@ status_t Parser::parseTrackHeader( return OK; } -status_t Parser::parseMediaHeader( +status_t FragmentedMP4Parser::parseMediaHeader( uint32_t type, size_t offset, uint64_t size) { if (offset + 4 > size) { return -EINVAL; @@ -996,7 +994,7 @@ status_t Parser::parseMediaHeader( return OK; } -status_t Parser::parseMediaHandler( +status_t FragmentedMP4Parser::parseMediaHandler( uint32_t type, size_t offset, uint64_t size) { if (offset + 12 > size) { return -EINVAL; @@ -1024,7 +1022,7 @@ status_t Parser::parseMediaHandler( return OK; } -status_t Parser::parseVisualSampleEntry( +status_t FragmentedMP4Parser::parseVisualSampleEntry( uint32_t type, size_t offset, uint64_t size) { if (offset + 78 > size) { return -EINVAL; @@ -1067,7 +1065,7 @@ status_t Parser::parseVisualSampleEntry( return OK; } -status_t Parser::parseAudioSampleEntry( +status_t FragmentedMP4Parser::parseAudioSampleEntry( uint32_t type, size_t offset, uint64_t size) { if (offset + 28 > size) { return -EINVAL; @@ -1133,37 +1131,37 @@ static void addCodecSpecificData( format->setBuffer(StringPrintf("csd-%d", index).c_str(), csd); } -status_t Parser::parseSampleSizes( +status_t FragmentedMP4Parser::parseSampleSizes( uint32_t type, size_t offset, uint64_t size) { return editTrack(mCurrentTrackID)->mStaticFragment->parseSampleSizes( this, type, offset, size); } -status_t Parser::parseCompactSampleSizes( +status_t FragmentedMP4Parser::parseCompactSampleSizes( uint32_t type, size_t offset, uint64_t size) { return editTrack(mCurrentTrackID)->mStaticFragment->parseCompactSampleSizes( this, type, offset, size); } -status_t Parser::parseSampleToChunk( +status_t FragmentedMP4Parser::parseSampleToChunk( uint32_t type, size_t offset, uint64_t size) { return editTrack(mCurrentTrackID)->mStaticFragment->parseSampleToChunk( this, type, offset, size); } -status_t Parser::parseChunkOffsets( +status_t FragmentedMP4Parser::parseChunkOffsets( uint32_t type, size_t offset, uint64_t size) { return editTrack(mCurrentTrackID)->mStaticFragment->parseChunkOffsets( this, type, offset, size); } -status_t Parser::parseChunkOffsets64( +status_t FragmentedMP4Parser::parseChunkOffsets64( uint32_t type, size_t offset, uint64_t size) { return editTrack(mCurrentTrackID)->mStaticFragment->parseChunkOffsets64( this, type, offset, size); } -status_t Parser::parseAVCCodecSpecificData( +status_t FragmentedMP4Parser::parseAVCCodecSpecificData( uint32_t type, size_t offset, uint64_t size) { TrackInfo *trackInfo = editTrack(mCurrentTrackID); @@ -1246,7 +1244,7 @@ status_t Parser::parseAVCCodecSpecificData( return OK; } -status_t Parser::parseESDSCodecSpecificData( +status_t FragmentedMP4Parser::parseESDSCodecSpecificData( uint32_t type, size_t offset, uint64_t size) { TrackInfo *trackInfo = editTrack(mCurrentTrackID); @@ -1351,7 +1349,7 @@ status_t Parser::parseESDSCodecSpecificData( return OK; } -status_t Parser::parseMediaData( +status_t FragmentedMP4Parser::parseMediaData( uint32_t type, size_t offset, uint64_t size) { ALOGV("skipping 'mdat' chunk at offsets 0x%08lx-0x%08llx.", mBufferPos + offset, mBufferPos + size); @@ -1372,7 +1370,7 @@ status_t Parser::parseMediaData( return OK; } -status_t Parser::parseTrackExtends( +status_t FragmentedMP4Parser::parseTrackExtends( uint32_t type, size_t offset, uint64_t size) { if (offset + 24 > size) { return -EINVAL; @@ -1393,7 +1391,7 @@ status_t Parser::parseTrackExtends( return OK; } -Parser::TrackInfo *Parser::editTrack( +FragmentedMP4Parser::TrackInfo *FragmentedMP4Parser::editTrack( uint32_t trackID, bool createIfNecessary) { ssize_t i = mTracks.indexOfKey(trackID); @@ -1422,7 +1420,7 @@ Parser::TrackInfo *Parser::editTrack( return &mTracks.editValueAt(mTracks.indexOfKey(trackID)); } -status_t Parser::parseTrackFragmentHeader( +status_t FragmentedMP4Parser::parseTrackFragmentHeader( uint32_t type, size_t offset, uint64_t size) { if (offset + 8 > size) { return -EINVAL; @@ -1512,7 +1510,7 @@ status_t Parser::parseTrackFragmentHeader( return OK; } -status_t Parser::parseTrackFragmentRun( +status_t FragmentedMP4Parser::parseTrackFragmentRun( uint32_t type, size_t offset, uint64_t size) { if (offset + 8 > size) { return -EINVAL; @@ -1670,7 +1668,7 @@ status_t Parser::parseTrackFragmentRun( return OK; } -void Parser::copyBuffer( +void FragmentedMP4Parser::copyBuffer( sp<ABuffer> *dst, size_t offset, uint64_t size, size_t extra) const { sp<ABuffer> buf = new ABuffer(size + extra); memcpy(buf->data(), mBuffer->data() + offset, size); diff --git a/media/libmediaplayerservice/nuplayer/mp4/TrackFragment.cpp b/media/libstagefright/mp4/TrackFragment.cpp index a4c31ea..3699038 100644 --- a/media/libmediaplayerservice/nuplayer/mp4/TrackFragment.cpp +++ b/media/libstagefright/mp4/TrackFragment.cpp @@ -28,15 +28,15 @@ namespace android { -Parser::DynamicTrackFragment::DynamicTrackFragment() +FragmentedMP4Parser::DynamicTrackFragment::DynamicTrackFragment() : mComplete(false), mSampleIndex(0) { } -Parser::DynamicTrackFragment::~DynamicTrackFragment() { +FragmentedMP4Parser::DynamicTrackFragment::~DynamicTrackFragment() { } -status_t Parser::DynamicTrackFragment::getSample(SampleInfo *info) { +status_t FragmentedMP4Parser::DynamicTrackFragment::getSample(SampleInfo *info) { if (mSampleIndex >= mSamples.size()) { return mComplete ? ERROR_END_OF_STREAM : -EWOULDBLOCK; } @@ -46,11 +46,11 @@ status_t Parser::DynamicTrackFragment::getSample(SampleInfo *info) { return OK; } -void Parser::DynamicTrackFragment::advance() { +void FragmentedMP4Parser::DynamicTrackFragment::advance() { ++mSampleIndex; } -void Parser::DynamicTrackFragment::addSample( +void FragmentedMP4Parser::DynamicTrackFragment::addSample( off64_t dataOffset, size_t sampleSize, uint32_t presentationTime, size_t sampleDescIndex, @@ -65,19 +65,19 @@ void Parser::DynamicTrackFragment::addSample( sampleInfo->mFlags = flags; } -status_t Parser::DynamicTrackFragment::signalCompletion() { +status_t FragmentedMP4Parser::DynamicTrackFragment::signalCompletion() { mComplete = true; return OK; } -bool Parser::DynamicTrackFragment::complete() const { +bool FragmentedMP4Parser::DynamicTrackFragment::complete() const { return mComplete; } //////////////////////////////////////////////////////////////////////////////// -Parser::StaticTrackFragment::StaticTrackFragment() +FragmentedMP4Parser::StaticTrackFragment::StaticTrackFragment() : mSampleIndex(0), mSampleCount(0), mChunkIndex(0), @@ -87,10 +87,10 @@ Parser::StaticTrackFragment::StaticTrackFragment() mNextSampleOffset(0) { } -Parser::StaticTrackFragment::~StaticTrackFragment() { +FragmentedMP4Parser::StaticTrackFragment::~StaticTrackFragment() { } -status_t Parser::StaticTrackFragment::getSample(SampleInfo *info) { +status_t FragmentedMP4Parser::StaticTrackFragment::getSample(SampleInfo *info) { if (mSampleIndex >= mSampleCount) { return ERROR_END_OF_STREAM; } @@ -104,7 +104,7 @@ status_t Parser::StaticTrackFragment::getSample(SampleInfo *info) { return OK; } -void Parser::StaticTrackFragment::updateSampleInfo() { +void FragmentedMP4Parser::StaticTrackFragment::updateSampleInfo() { if (mSampleIndex >= mSampleCount) { return; } @@ -185,7 +185,7 @@ void Parser::StaticTrackFragment::updateSampleInfo() { mSampleInfo.mFlags = 0; } -void Parser::StaticTrackFragment::advance() { +void FragmentedMP4Parser::StaticTrackFragment::advance() { mNextSampleOffset += mSampleInfo.mSize; ++mSampleIndex; @@ -223,7 +223,7 @@ static void setU32At(uint8_t *ptr, uint32_t x) { ptr[3] = x & 0xff; } -status_t Parser::StaticTrackFragment::signalCompletion() { +status_t FragmentedMP4Parser::StaticTrackFragment::signalCompletion() { mSampleToChunkIndex = 0; mSampleToChunkRemaining = @@ -236,12 +236,12 @@ status_t Parser::StaticTrackFragment::signalCompletion() { return OK; } -bool Parser::StaticTrackFragment::complete() const { +bool FragmentedMP4Parser::StaticTrackFragment::complete() const { return true; } -status_t Parser::StaticTrackFragment::parseSampleSizes( - Parser *parser, uint32_t type, size_t offset, uint64_t size) { +status_t FragmentedMP4Parser::StaticTrackFragment::parseSampleSizes( + FragmentedMP4Parser *parser, uint32_t type, size_t offset, uint64_t size) { if (offset + 12 > size) { return ERROR_MALFORMED; } @@ -264,8 +264,8 @@ status_t Parser::StaticTrackFragment::parseSampleSizes( return OK; } -status_t Parser::StaticTrackFragment::parseCompactSampleSizes( - Parser *parser, uint32_t type, size_t offset, uint64_t size) { +status_t FragmentedMP4Parser::StaticTrackFragment::parseCompactSampleSizes( + FragmentedMP4Parser *parser, uint32_t type, size_t offset, uint64_t size) { if (offset + 12 > size) { return ERROR_MALFORMED; } @@ -293,8 +293,8 @@ status_t Parser::StaticTrackFragment::parseCompactSampleSizes( return OK; } -status_t Parser::StaticTrackFragment::parseSampleToChunk( - Parser *parser, uint32_t type, size_t offset, uint64_t size) { +status_t FragmentedMP4Parser::StaticTrackFragment::parseSampleToChunk( + FragmentedMP4Parser *parser, uint32_t type, size_t offset, uint64_t size) { if (offset + 8 > size) { return ERROR_MALFORMED; } @@ -318,8 +318,8 @@ status_t Parser::StaticTrackFragment::parseSampleToChunk( return OK; } -status_t Parser::StaticTrackFragment::parseChunkOffsets( - Parser *parser, uint32_t type, size_t offset, uint64_t size) { +status_t FragmentedMP4Parser::StaticTrackFragment::parseChunkOffsets( + FragmentedMP4Parser *parser, uint32_t type, size_t offset, uint64_t size) { if (offset + 8 > size) { return ERROR_MALFORMED; } @@ -339,8 +339,8 @@ status_t Parser::StaticTrackFragment::parseChunkOffsets( return OK; } -status_t Parser::StaticTrackFragment::parseChunkOffsets64( - Parser *parser, uint32_t type, size_t offset, uint64_t size) { +status_t FragmentedMP4Parser::StaticTrackFragment::parseChunkOffsets64( + FragmentedMP4Parser *parser, uint32_t type, size_t offset, uint64_t size) { if (offset + 8 > size) { return ERROR_MALFORMED; } diff --git a/media/libmediaplayerservice/nuplayer/mp4/TrackFragment.h b/media/libstagefright/mp4/TrackFragment.h index 1498aad..e1ad46e 100644 --- a/media/libmediaplayerservice/nuplayer/mp4/TrackFragment.h +++ b/media/libstagefright/mp4/TrackFragment.h @@ -18,11 +18,11 @@ #define TRACK_FRAGMENT_H_ -#include "Parser.h" +#include "include/FragmentedMP4Parser.h" namespace android { -struct Parser::TrackFragment : public RefBase { +struct FragmentedMP4Parser::TrackFragment : public RefBase { TrackFragment() {} virtual status_t getSample(SampleInfo *info) = 0; @@ -38,7 +38,7 @@ private: DISALLOW_EVIL_CONSTRUCTORS(TrackFragment); }; -struct Parser::DynamicTrackFragment : public Parser::TrackFragment { +struct FragmentedMP4Parser::DynamicTrackFragment : public FragmentedMP4Parser::TrackFragment { DynamicTrackFragment(); virtual status_t getSample(SampleInfo *info); @@ -66,7 +66,7 @@ private: DISALLOW_EVIL_CONSTRUCTORS(DynamicTrackFragment); }; -struct Parser::StaticTrackFragment : public Parser::TrackFragment { +struct FragmentedMP4Parser::StaticTrackFragment : public FragmentedMP4Parser::TrackFragment { StaticTrackFragment(); virtual status_t getSample(SampleInfo *info); @@ -76,19 +76,19 @@ struct Parser::StaticTrackFragment : public Parser::TrackFragment { virtual bool complete() const; status_t parseSampleSizes( - Parser *parser, uint32_t type, size_t offset, uint64_t size); + FragmentedMP4Parser *parser, uint32_t type, size_t offset, uint64_t size); status_t parseCompactSampleSizes( - Parser *parser, uint32_t type, size_t offset, uint64_t size); + FragmentedMP4Parser *parser, uint32_t type, size_t offset, uint64_t size); status_t parseSampleToChunk( - Parser *parser, uint32_t type, size_t offset, uint64_t size); + FragmentedMP4Parser *parser, uint32_t type, size_t offset, uint64_t size); status_t parseChunkOffsets( - Parser *parser, uint32_t type, size_t offset, uint64_t size); + FragmentedMP4Parser *parser, uint32_t type, size_t offset, uint64_t size); status_t parseChunkOffsets64( - Parser *parser, uint32_t type, size_t offset, uint64_t size); + FragmentedMP4Parser *parser, uint32_t type, size_t offset, uint64_t size); protected: virtual ~StaticTrackFragment(); |