summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2012-08-31 11:07:37 -0700
committerMarco Nelissen <marcone@google.com>2012-08-31 14:14:22 -0700
commitcb1f88c684140ce0eb407049a78f889bc7d51be1 (patch)
tree8aa79ee909d368f934556c12115a6d03e66ba432 /media
parent092fe44abd787fcb4377d90c63f2aa7120a4d267 (diff)
downloadframeworks_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.mk2
-rw-r--r--media/libmediaplayerservice/nuplayer/mp4/MP4Source.cpp6
-rw-r--r--media/libmediaplayerservice/nuplayer/mp4/MP4Source.h4
-rw-r--r--media/libstagefright/Android.mk2
-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();