-
Notifications
You must be signed in to change notification settings - Fork 507
Closed
Description
/**
* Moves reader to the start of the exif segment and returns the length of the exif segment or
* {@code -1} if no exif segment is found.
*/
private int moveToExifSegmentAndGetLength() throws IOException {
short segmentId, segmentType;
int segmentLength;
while (true) {
segmentId = reader.getUInt8();
if (segmentId != SEGMENT_START_ID) {
if (Log.isLoggable(TAG, Log.DEBUG)) {
Log.d(TAG, "Unknown segmentId=" + segmentId);
}
return -1;
}
segmentType = reader.getUInt8();
if (segmentType == SEGMENT_SOS) {
return -1;
} else if (segmentType == MARKER_EOI) {
if (Log.isLoggable(TAG, Log.DEBUG)) {
Log.d(TAG, "Found MARKER_EOI in exif segment");
}
return -1;
}
// Segment length includes bytes for segment length.
segmentLength = reader.getUInt16() - 2;
if (segmentType != EXIF_SEGMENT_TYPE) {
long skipped = reader.skip(segmentLength);
if (skipped != segmentLength) {
if (Log.isLoggable(TAG, Log.DEBUG)) {
Log.d(TAG, "Unable to skip enough data"
+ ", type: " + segmentType
+ ", wanted to skip: " + segmentLength
+ ", but actually skipped: " + skipped);
}
return -1;
}
} else {
return segmentLength;
}
}
}
Metadata
Metadata
Assignees
Labels
No labels