summaryrefslogtreecommitdiffstats
path: root/media/img_utils/src/FileInput.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'media/img_utils/src/FileInput.cpp')
-rw-r--r--media/img_utils/src/FileInput.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/media/img_utils/src/FileInput.cpp b/media/img_utils/src/FileInput.cpp
index e43fd53..498e715 100644
--- a/media/img_utils/src/FileInput.cpp
+++ b/media/img_utils/src/FileInput.cpp
@@ -45,19 +45,24 @@ status_t FileInput::open() {
return OK;
}
-size_t FileInput::read(uint8_t* buf, size_t offset, size_t count, status_t* err) {
+ssize_t FileInput::read(uint8_t* buf, size_t offset, size_t count) {
if (!mOpen) {
ALOGE("%s: Could not read file %s, file not open.", __FUNCTION__, mPath.string());
- if (err != NULL) *err = BAD_VALUE;
- return 0;
+ return BAD_VALUE;
}
size_t bytesRead = ::fread(buf + offset, sizeof(uint8_t), count, mFp);
int error = ::ferror(mFp);
if (error != 0) {
ALOGE("%s: Error %d occurred while reading file %s.", __FUNCTION__, error, mPath.string());
- if (err != NULL) *err = BAD_VALUE;
+ return BAD_VALUE;
}
+
+ // End of file reached
+ if (::feof(mFp) != 0 && bytesRead == 0) {
+ return NOT_ENOUGH_DATA;
+ }
+
return bytesRead;
}