summaryrefslogtreecommitdiffstats
path: root/media/libmedia
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2014-12-17 14:44:33 -0800
committerMarco Nelissen <marcone@google.com>2014-12-18 11:54:42 -0800
commitfaf4efc6a41e88adf85f76f48f020a6d681f5ff1 (patch)
treea54aa43c242bb9c640afcf0d7c8b5f3a2c9e45ab /media/libmedia
parent23c8dc13787186dc98731055858b2fba3aedc105 (diff)
downloadframeworks_av-faf4efc6a41e88adf85f76f48f020a6d681f5ff1.zip
frameworks_av-faf4efc6a41e88adf85f76f48f020a6d681f5ff1.tar.gz
frameworks_av-faf4efc6a41e88adf85f76f48f020a6d681f5ff1.tar.bz2
Replace MidiFile player with a Midi extractor
This gets rids of a bunch of special midi handling and replaces it with an extractor that works with NuPlayer and MediaMetadataRetriever. Change-Id: I8d0f5bbdde2ca24267cf4d62ab26afe9630e0217
Diffstat (limited to 'media/libmedia')
-rw-r--r--media/libmedia/MidiIoWrapper.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/media/libmedia/MidiIoWrapper.cpp b/media/libmedia/MidiIoWrapper.cpp
index ef931d2..2181111 100644
--- a/media/libmedia/MidiIoWrapper.cpp
+++ b/media/libmedia/MidiIoWrapper.cpp
@@ -47,6 +47,16 @@ MidiIoWrapper::MidiIoWrapper(int fd, off64_t offset, int64_t size) {
mLength = size;
}
+MidiIoWrapper::MidiIoWrapper(const sp<DataSource> &source) {
+ mDataSource = source;
+ off64_t l;
+ if (mDataSource->getSize(&l) == OK) {
+ mLength = l;
+ } else {
+ mLength = 0;
+ }
+}
+
MidiIoWrapper::~MidiIoWrapper() {
ALOGV("~MidiIoWrapper");
close(mFd);
@@ -54,6 +64,10 @@ MidiIoWrapper::~MidiIoWrapper() {
int MidiIoWrapper::readAt(void *buffer, int offset, int size) {
ALOGV("readAt(%p, %d, %d)", buffer, offset, size);
+
+ if (mDataSource != NULL) {
+ return mDataSource->readAt(offset, buffer, size);
+ }
lseek(mFd, mBase + offset, SEEK_SET);
if (offset + size > mLength) {
size = mLength - offset;