Ignore:
Timestamp:
2016-08-20T20:58:03+02:00 (10 years ago)
Author:
Don-vip
Message:

update to metadata-extractor 2.9.1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/com/drew/imaging/jpeg/JpegSegmentReader.java

    r8132 r10862  
    11/*
    2  * Copyright 2002-2015 Drew Noakes
     2 * Copyright 2002-2016 Drew Noakes
    33 *
    44 *    Licensed under the Apache License, Version 2.0 (the "License");
     
    4343public class JpegSegmentReader
    4444{
     45    /**
     46     * The 0xFF byte that signals the start of a segment.
     47     */
     48    private static final byte SEGMENT_IDENTIFIER = (byte) 0xFF;
     49
    4550    /**
    4651     * Private, because this segment crashes my algorithm, and searching for it doesn't work (yet).
     
    112117            // by a 0xFF and then a byte not equal to 0x00 or 0xFF.
    113118
    114             final short segmentIdentifier = reader.getUInt8();
     119            byte segmentIdentifier = reader.getInt8();
     120            byte segmentType = reader.getInt8();
    115121
    116             // We must have at least one 0xFF byte
    117             if (segmentIdentifier != 0xFF)
    118                 throw new JpegProcessingException("Expected JPEG segment start identifier 0xFF, not 0x" + Integer.toHexString(segmentIdentifier).toUpperCase());
    119 
    120             // Read until we have a non-0xFF byte. This identifies the segment type.
    121             byte segmentType = reader.getInt8();
    122             while (segmentType == (byte)0xFF)
    123                 segmentType = reader.getInt8();
    124 
    125             if (segmentType == 0)
    126                 throw new JpegProcessingException("Expected non-zero byte as part of JPEG marker identifier");
     122            // Read until we have a 0xFF byte followed by a byte that is not 0xFF or 0x00
     123            while (segmentIdentifier != SEGMENT_IDENTIFIER || segmentType == SEGMENT_IDENTIFIER || segmentType == 0) {
     124                segmentIdentifier = segmentType;
     125                segmentType = reader.getInt8();
     126            }
    127127
    128128            if (segmentType == SEGMENT_SOS) {
Note: See TracChangeset for help on using the changeset viewer.