diff options
-rw-r--r-- | cmds/stagefright/stagefright.cpp | 13 | ||||
-rw-r--r-- | media/libstagefright/FileSource.cpp | 2 | ||||
-rw-r--r-- | media/libstagefright/StagefrightMetadataRetriever.cpp | 3 |
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; |