summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmds/stagefright/stagefright.cpp13
-rw-r--r--media/libstagefright/FileSource.cpp2
-rw-r--r--media/libstagefright/StagefrightMetadataRetriever.cpp3
3 files changed, 17 insertions, 1 deletions
diff --git a/cmds/stagefright/stagefright.cpp b/cmds/stagefright/stagefright.cpp
index d70c862..6a5b45f 100644
--- a/cmds/stagefright/stagefright.cpp
+++ b/cmds/stagefright/stagefright.cpp
@@ -775,7 +775,18 @@ int main(int argc, char **argv) {
const char *filename = argv[k];
bool failed = true;
- CHECK_EQ(retriever->setDataSource(filename), (status_t)OK);
+
+ int fd = open(filename, O_RDONLY | O_LARGEFILE);
+ CHECK_GE(fd, 0);
+
+ off64_t fileSize = lseek64(fd, 0, SEEK_END);
+ CHECK_GE(fileSize, 0ll);
+
+ CHECK_EQ(retriever->setDataSource(fd, 0, fileSize), (status_t)OK);
+
+ close(fd);
+ fd = -1;
+
sp<IMemory> mem =
retriever->getFrameAtTime(-1,
MediaSource::ReadOptions::SEEK_PREVIOUS_SYNC);
diff --git a/media/libstagefright/FileSource.cpp b/media/libstagefright/FileSource.cpp
index 07ec265..a7ca3da 100644
--- a/media/libstagefright/FileSource.cpp
+++ b/media/libstagefright/FileSource.cpp
@@ -38,6 +38,8 @@ FileSource::FileSource(const char *filename)
if (mFd >= 0) {
mLength = lseek64(mFd, 0, SEEK_END);
+ } else {
+ ALOGE("Failed to open file '%s'. (%s)", filename, strerror(errno));
}
}
diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp
index 35f9c1f..fee557d 100644
--- a/media/libstagefright/StagefrightMetadataRetriever.cpp
+++ b/media/libstagefright/StagefrightMetadataRetriever.cpp
@@ -61,12 +61,15 @@ status_t StagefrightMetadataRetriever::setDataSource(
mSource = DataSource::CreateFromURI(uri, headers);
if (mSource == NULL) {
+ ALOGE("Unable to create data source for '%s'.", uri);
return UNKNOWN_ERROR;
}
mExtractor = MediaExtractor::Create(mSource);
if (mExtractor == NULL) {
+ ALOGE("Unable to instantiate an extractor for '%s'.", uri);
+
mSource.clear();
return UNKNOWN_ERROR;