package com.bumptech.glide.load.resource.bitmap; import android.annotation.TargetApi; import android.content.res.AssetFileDescriptor; import android.graphics.Bitmap; import android.media.MediaMetadataRetriever; import android.os.Build; import android.os.ParcelFileDescriptor; import android.util.Log; import com.bumptech.glide.load.Option; import com.bumptech.glide.load.Options; import com.bumptech.glide.load.ResourceDecoder; import com.bumptech.glide.load.engine.Resource; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import java.io.IOException; import java.nio.ByteBuffer; import java.security.MessageDigest; /* loaded from: classes.dex */ public class VideoDecoder implements ResourceDecoder { public static final Option d = Option.a("com.bumptech.glide.load.resource.bitmap.VideoBitmapDecode.TargetFrame", -1L, new Option.CacheKeyUpdater() { // from class: com.bumptech.glide.load.resource.bitmap.VideoDecoder.1 private final ByteBuffer a = ByteBuffer.allocate(8); @Override // com.bumptech.glide.load.Option.CacheKeyUpdater public void a(byte[] bArr, Long l, MessageDigest messageDigest) { messageDigest.update(bArr); synchronized (this.a) { this.a.position(0); messageDigest.update(this.a.putLong(l.longValue()).array()); } } }); public static final Option e = Option.a("com.bumptech.glide.load.resource.bitmap.VideoBitmapDecode.FrameOption", 2, new Option.CacheKeyUpdater() { // from class: com.bumptech.glide.load.resource.bitmap.VideoDecoder.2 private final ByteBuffer a = ByteBuffer.allocate(4); @Override // com.bumptech.glide.load.Option.CacheKeyUpdater public void a(byte[] bArr, Integer num, MessageDigest messageDigest) { if (num == null) { return; } messageDigest.update(bArr); synchronized (this.a) { this.a.position(0); messageDigest.update(this.a.putInt(num.intValue()).array()); } } }); private static final MediaMetadataRetrieverFactory f = new MediaMetadataRetrieverFactory(); private final MediaMetadataRetrieverInitializer a; private final BitmapPool b; private final MediaMetadataRetrieverFactory c; private static final class AssetFileDescriptorInitializer implements MediaMetadataRetrieverInitializer { private AssetFileDescriptorInitializer() { } @Override // com.bumptech.glide.load.resource.bitmap.VideoDecoder.MediaMetadataRetrieverInitializer public void a(MediaMetadataRetriever mediaMetadataRetriever, AssetFileDescriptor assetFileDescriptor) { mediaMetadataRetriever.setDataSource(assetFileDescriptor.getFileDescriptor(), assetFileDescriptor.getStartOffset(), assetFileDescriptor.getLength()); } } static class MediaMetadataRetrieverFactory { MediaMetadataRetrieverFactory() { } public MediaMetadataRetriever a() { return new MediaMetadataRetriever(); } } interface MediaMetadataRetrieverInitializer { void a(MediaMetadataRetriever mediaMetadataRetriever, T t); } static final class ParcelFileDescriptorInitializer implements MediaMetadataRetrieverInitializer { ParcelFileDescriptorInitializer() { } @Override // com.bumptech.glide.load.resource.bitmap.VideoDecoder.MediaMetadataRetrieverInitializer public void a(MediaMetadataRetriever mediaMetadataRetriever, ParcelFileDescriptor parcelFileDescriptor) { mediaMetadataRetriever.setDataSource(parcelFileDescriptor.getFileDescriptor()); } } VideoDecoder(BitmapPool bitmapPool, MediaMetadataRetrieverInitializer mediaMetadataRetrieverInitializer) { this(bitmapPool, mediaMetadataRetrieverInitializer, f); } public static ResourceDecoder a(BitmapPool bitmapPool) { return new VideoDecoder(bitmapPool, new AssetFileDescriptorInitializer()); } public static ResourceDecoder b(BitmapPool bitmapPool) { return new VideoDecoder(bitmapPool, new ParcelFileDescriptorInitializer()); } @Override // com.bumptech.glide.load.ResourceDecoder public boolean a(T t, Options options) { return true; } VideoDecoder(BitmapPool bitmapPool, MediaMetadataRetrieverInitializer mediaMetadataRetrieverInitializer, MediaMetadataRetrieverFactory mediaMetadataRetrieverFactory) { this.b = bitmapPool; this.a = mediaMetadataRetrieverInitializer; this.c = mediaMetadataRetrieverFactory; } @TargetApi(27) private static Bitmap b(MediaMetadataRetriever mediaMetadataRetriever, long j, int i, int i2, int i3, DownsampleStrategy downsampleStrategy) { try { int parseInt = Integer.parseInt(mediaMetadataRetriever.extractMetadata(18)); int parseInt2 = Integer.parseInt(mediaMetadataRetriever.extractMetadata(19)); int parseInt3 = Integer.parseInt(mediaMetadataRetriever.extractMetadata(24)); if (parseInt3 == 90 || parseInt3 == 270) { parseInt2 = parseInt; parseInt = parseInt2; } float b = downsampleStrategy.b(parseInt, parseInt2, i2, i3); return mediaMetadataRetriever.getScaledFrameAtTime(j, i, Math.round(parseInt * b), Math.round(b * parseInt2)); } catch (Throwable th) { if (!Log.isLoggable("VideoDecoder", 3)) { return null; } Log.d("VideoDecoder", "Exception trying to decode frame on oreo+", th); return null; } } @Override // com.bumptech.glide.load.ResourceDecoder public Resource a(T t, int i, int i2, Options options) throws IOException { long longValue = ((Long) options.a(d)).longValue(); if (longValue < 0 && longValue != -1) { throw new IllegalArgumentException("Requested frame must be non-negative, or DEFAULT_FRAME, given: " + longValue); } Integer num = (Integer) options.a(e); if (num == null) { num = 2; } DownsampleStrategy downsampleStrategy = (DownsampleStrategy) options.a(DownsampleStrategy.f); if (downsampleStrategy == null) { downsampleStrategy = DownsampleStrategy.e; } DownsampleStrategy downsampleStrategy2 = downsampleStrategy; MediaMetadataRetriever a = this.c.a(); try { try { this.a.a(a, t); Bitmap a2 = a(a, longValue, num.intValue(), i, i2, downsampleStrategy2); a.release(); return BitmapResource.a(a2, this.b); } catch (RuntimeException e2) { throw new IOException(e2); } } catch (Throwable th) { a.release(); throw th; } } private static Bitmap a(MediaMetadataRetriever mediaMetadataRetriever, long j, int i, int i2, int i3, DownsampleStrategy downsampleStrategy) { Bitmap b = (Build.VERSION.SDK_INT < 27 || i2 == Integer.MIN_VALUE || i3 == Integer.MIN_VALUE || downsampleStrategy == DownsampleStrategy.d) ? null : b(mediaMetadataRetriever, j, i, i2, i3, downsampleStrategy); return b == null ? a(mediaMetadataRetriever, j, i) : b; } private static Bitmap a(MediaMetadataRetriever mediaMetadataRetriever, long j, int i) { return mediaMetadataRetriever.getFrameAtTime(j, i); } }