media store: improved size detection for AVI

This commit is contained in:
Thibault Deckers 2020-04-07 16:17:51 +09:00
parent 48a62e85c5
commit 4ba5353f52
3 changed files with 13 additions and 1 deletions

View file

@ -98,7 +98,7 @@ public class ImageDecodeTask extends AsyncTask<ImageDecodeTask.Params, Void, Ima
try {
return resolver.loadThumbnail(entry.uri, new Size(width, height), null);
} catch (IOException e) {
Log.e(LOG_TAG, "failed to load thumbnail for uri=" + entry.uri, e);
Log.e(LOG_TAG, "failed to load thumbnail for uri=" + entry.uri + ", path=" + entry.path + ", width=" + width + ", height=" + height, e);
}
return null;
}

View file

@ -14,6 +14,7 @@ import com.drew.imaging.ImageMetadataReader;
import com.drew.imaging.ImageProcessingException;
import com.drew.metadata.Metadata;
import com.drew.metadata.MetadataException;
import com.drew.metadata.avi.AviDirectory;
import com.drew.metadata.exif.ExifIFD0Directory;
import com.drew.metadata.jpeg.JpegDirectory;
import com.drew.metadata.mp4.media.Mp4VideoDirectory;
@ -217,6 +218,16 @@ public class ImageEntry {
height = mp4VideoDir.getInt(Mp4VideoDirectory.TAG_HEIGHT);
}
}
} else if (MimeTypes.AVI.equals(mimeType)) {
AviDirectory aviDir = metadata.getFirstDirectoryOfType(AviDirectory.class);
if (aviDir != null) {
if (aviDir.containsTag(AviDirectory.TAG_WIDTH)) {
width = aviDir.getInt(AviDirectory.TAG_WIDTH);
}
if (aviDir.containsTag(AviDirectory.TAG_HEIGHT)) {
height = aviDir.getInt(AviDirectory.TAG_HEIGHT);
}
}
}
} catch (IOException | ImageProcessingException | MetadataException e) {
// ignore

View file

@ -10,6 +10,7 @@ public class MimeTypes {
public static final String SVG = "image/svg+xml";
public static final String VIDEO = "video";
public static final String AVI = "video/avi";
public static final String MP2T = "video/mp2t"; // .m2ts
public static final String MP4 = "video/mp4";
}