summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/include
diff options
context:
space:
mode:
authorGloria Wang <gwang@google.com>2010-10-25 16:56:49 -0700
committerGloria Wang <gwang@google.com>2010-10-25 16:56:49 -0700
commitaceaaf303422bbe3a7b8d9cdb96495dbf8109c23 (patch)
tree567006154374135f6747dd8a81288d3b5570c11f /media/libstagefright/include
parent4cd5c79858d5c8508dffdcba5a0fcb941a39cbef (diff)
parenta9741a9232c81eaf59179acef91f5be46c42264e (diff)
downloadframeworks_av-aceaaf303422bbe3a7b8d9cdb96495dbf8109c23.zip
frameworks_av-aceaaf303422bbe3a7b8d9cdb96495dbf8109c23.tar.gz
frameworks_av-aceaaf303422bbe3a7b8d9cdb96495dbf8109c23.tar.bz2
resolved conflicts for merge of 965f960e to master
Change-Id: I63cec8ffb3593216da1de03428134d89e75b9338
Diffstat (limited to 'media/libstagefright/include')
-rw-r--r--media/libstagefright/include/AwesomePlayer.h7
-rw-r--r--media/libstagefright/include/DRMExtractor.h61
-rw-r--r--media/libstagefright/include/MPEG4Extractor.h17
3 files changed, 85 insertions, 0 deletions
diff --git a/media/libstagefright/include/AwesomePlayer.h b/media/libstagefright/include/AwesomePlayer.h
index f4a2024..a0a7436 100644
--- a/media/libstagefright/include/AwesomePlayer.h
+++ b/media/libstagefright/include/AwesomePlayer.h
@@ -26,6 +26,7 @@
#include <media/stagefright/OMXClient.h>
#include <media/stagefright/TimeSource.h>
#include <utils/threads.h>
+#include <drm/DrmManagerClient.h>
namespace android {
@@ -41,6 +42,9 @@ struct ARTSPController;
struct ARTPSession;
struct UDPPusher;
+class DrmManagerClinet;
+class DecryptHandle;
+
struct AwesomeRenderer : public RefBase {
AwesomeRenderer() {}
@@ -222,6 +226,9 @@ private:
}
} *mSuspensionState;
+ DrmManagerClient *mDrmManagerClient;
+ DecryptHandle *mDecryptHandle;
+
status_t setDataSource_l(
const char *uri,
const KeyedVector<String8, String8> *headers = NULL);
diff --git a/media/libstagefright/include/DRMExtractor.h b/media/libstagefright/include/DRMExtractor.h
new file mode 100644
index 0000000..cafc812
--- /dev/null
+++ b/media/libstagefright/include/DRMExtractor.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef DRM_EXTRACTOR_H_
+
+#define DRM_EXTRACTOR_H_
+
+#include <media/stagefright/MediaExtractor.h>
+#include <drm/DrmManagerClient.h>
+
+namespace android {
+
+struct AMessage;
+class DataSource;
+class SampleTable;
+class String8;
+class DecryptHandle;
+
+class DRMExtractor : public MediaExtractor {
+public:
+ DRMExtractor(const sp<DataSource> &source, const char *mime);
+
+ virtual size_t countTracks();
+ virtual sp<MediaSource> getTrack(size_t index);
+ virtual sp<MetaData> getTrackMetaData(size_t index, uint32_t flags);
+ virtual sp<MetaData> getMetaData();
+
+protected:
+ virtual ~DRMExtractor();
+
+private:
+ sp<DataSource> mDataSource;
+
+ sp<MediaExtractor> mOriginalExtractor;
+ DecryptHandle* mDecryptHandle;
+
+ DRMExtractor(const DRMExtractor &);
+ DRMExtractor &operator=(const DRMExtractor &);
+};
+
+bool SniffDRM(
+ const sp<DataSource> &source, String8 *mimeType, float *confidence,
+ sp<AMessage> *);
+
+} // namespace android
+
+#endif // DRM_EXTRACTOR_H_
+
diff --git a/media/libstagefright/include/MPEG4Extractor.h b/media/libstagefright/include/MPEG4Extractor.h
index 1c9cc7e..4e31059 100644
--- a/media/libstagefright/include/MPEG4Extractor.h
+++ b/media/libstagefright/include/MPEG4Extractor.h
@@ -39,6 +39,10 @@ public:
virtual sp<MetaData> getMetaData();
+ // for DRM
+ virtual void setDrmFlag(bool flag);
+ virtual char* getDrmTrackInfo(size_t trackID, int *len);
+
protected:
virtual ~MPEG4Extractor();
@@ -71,6 +75,19 @@ private:
static status_t verifyTrack(Track *track);
+ struct SINF {
+ SINF *next;
+ uint16_t trackID;
+ uint8_t IPMPDescriptorID;
+ ssize_t len;
+ char *IPMPData;
+ };
+
+ SINF *mFirstSINF;
+
+ bool mIsDrm;
+ status_t parseDrmSINF(off_t *offset, off_t data_offset);
+
MPEG4Extractor(const MPEG4Extractor &);
MPEG4Extractor &operator=(const MPEG4Extractor &);
};