summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/include/MPEG4Extractor.h
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2013-02-13 09:27:28 -0800
committerMarco Nelissen <marcone@google.com>2013-02-15 10:03:04 -0800
commit05f625c46b992ab66b8d1527a366fe2746b4e3c7 (patch)
treed1279615e941531ec3a7d49f49469b32a836aae5 /media/libstagefright/include/MPEG4Extractor.h
parent7deec82fbe9f73da5488a0ac4732122a505602cb (diff)
downloadframeworks_av-05f625c46b992ab66b8d1527a366fe2746b4e3c7.zip
frameworks_av-05f625c46b992ab66b8d1527a366fe2746b4e3c7.tar.gz
frameworks_av-05f625c46b992ab66b8d1527a366fe2746b4e3c7.tar.bz2
Add support for fragmented mp4 to MPEG4Extractor
This makes FragmentedMP4Extractor obsolete. It will be removed in a separate change. Change-Id: Ida74c07ccf84983e20a1320ee24ffc7a5c083859
Diffstat (limited to 'media/libstagefright/include/MPEG4Extractor.h')
-rw-r--r--media/libstagefright/include/MPEG4Extractor.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/media/libstagefright/include/MPEG4Extractor.h b/media/libstagefright/include/MPEG4Extractor.h
index 5c549e0..c68623a 100644
--- a/media/libstagefright/include/MPEG4Extractor.h
+++ b/media/libstagefright/include/MPEG4Extractor.h
@@ -18,7 +18,12 @@
#define MPEG4_EXTRACTOR_H_
+#include <arpa/inet.h>
+
+#include <media/stagefright/DataSource.h>
#include <media/stagefright/MediaExtractor.h>
+#include <media/stagefright/Utils.h>
+#include <utils/List.h>
#include <utils/Vector.h>
#include <utils/String8.h>
@@ -29,6 +34,11 @@ class DataSource;
class SampleTable;
class String8;
+struct SidxEntry {
+ size_t mSize;
+ uint32_t mDurationUs;
+};
+
class MPEG4Extractor : public MediaExtractor {
public:
// Extractor assumes ownership of "source".
@@ -39,6 +49,7 @@ public:
virtual sp<MetaData> getTrackMetaData(size_t index, uint32_t flags);
virtual sp<MetaData> getMetaData();
+ virtual uint32_t flags() const;
// for DRM
virtual char* getDrmTrackInfo(size_t trackID, int *len);
@@ -47,6 +58,7 @@ protected:
virtual ~MPEG4Extractor();
private:
+
struct Track {
Track *next;
sp<MetaData> meta;
@@ -56,6 +68,10 @@ private:
bool skipTrack;
};
+ Vector<SidxEntry> mSidxEntries;
+ uint64_t mSidxDuration;
+ off64_t mMoofOffset;
+
sp<DataSource> mDataSource;
status_t mInitCheck;
bool mHasVideo;
@@ -93,6 +109,8 @@ private:
status_t parseTrackHeader(off64_t data_offset, off64_t data_size);
+ status_t parseSegmentIndex(off64_t data_offset, size_t data_size);
+
Track *findTrackByMimePrefix(const char *mimePrefix);
MPEG4Extractor(const MPEG4Extractor &);