mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Add bmpExtractor to DefaultExtractorsFactory
PiperOrigin-RevId: 563076972
This commit is contained in:
parent
ef45c0fe5d
commit
88b114a997
3 changed files with 23 additions and 4 deletions
|
|
@ -56,6 +56,7 @@ public final class FileTypes {
|
||||||
* <li>{@link #AVI}
|
* <li>{@link #AVI}
|
||||||
* <li>{@link #PNG}
|
* <li>{@link #PNG}
|
||||||
* <li>{@link #WEBP}
|
* <li>{@link #WEBP}
|
||||||
|
* <li>{@link #BMP}
|
||||||
* </ul>
|
* </ul>
|
||||||
*/
|
*/
|
||||||
@Documented
|
@Documented
|
||||||
|
|
@ -63,7 +64,7 @@ public final class FileTypes {
|
||||||
@Target(TYPE_USE)
|
@Target(TYPE_USE)
|
||||||
@IntDef({
|
@IntDef({
|
||||||
UNKNOWN, AC3, AC4, ADTS, AMR, FLAC, FLV, MATROSKA, MP3, MP4, OGG, PS, TS, WAV, WEBVTT, JPEG,
|
UNKNOWN, AC3, AC4, ADTS, AMR, FLAC, FLV, MATROSKA, MP3, MP4, OGG, PS, TS, WAV, WEBVTT, JPEG,
|
||||||
MIDI, AVI, PNG, WEBP
|
MIDI, AVI, PNG, WEBP, BMP
|
||||||
})
|
})
|
||||||
public @interface Type {}
|
public @interface Type {}
|
||||||
|
|
||||||
|
|
@ -127,6 +128,9 @@ public final class FileTypes {
|
||||||
/** File type for the WEBP format. */
|
/** File type for the WEBP format. */
|
||||||
public static final int WEBP = 18;
|
public static final int WEBP = 18;
|
||||||
|
|
||||||
|
/** File type for the BMP format. */
|
||||||
|
public static final int BMP = 19;
|
||||||
|
|
||||||
@VisibleForTesting /* package */ static final String HEADER_CONTENT_TYPE = "Content-Type";
|
@VisibleForTesting /* package */ static final String HEADER_CONTENT_TYPE = "Content-Type";
|
||||||
|
|
||||||
private static final String EXTENSION_AC3 = ".ac3";
|
private static final String EXTENSION_AC3 = ".ac3";
|
||||||
|
|
@ -164,6 +168,8 @@ public final class FileTypes {
|
||||||
private static final String EXTENSION_AVI = ".avi";
|
private static final String EXTENSION_AVI = ".avi";
|
||||||
private static final String EXTENSION_PNG = ".png";
|
private static final String EXTENSION_PNG = ".png";
|
||||||
private static final String EXTENSION_WEBP = ".webp";
|
private static final String EXTENSION_WEBP = ".webp";
|
||||||
|
private static final String EXTENSION_BMP = ".bmp";
|
||||||
|
private static final String EXTENSION_DIB = ".dib";
|
||||||
|
|
||||||
private FileTypes() {}
|
private FileTypes() {}
|
||||||
|
|
||||||
|
|
@ -233,6 +239,8 @@ public final class FileTypes {
|
||||||
return FileTypes.PNG;
|
return FileTypes.PNG;
|
||||||
case MimeTypes.IMAGE_WEBP:
|
case MimeTypes.IMAGE_WEBP:
|
||||||
return FileTypes.WEBP;
|
return FileTypes.WEBP;
|
||||||
|
case MimeTypes.IMAGE_BMP:
|
||||||
|
return FileTypes.BMP;
|
||||||
default:
|
default:
|
||||||
return FileTypes.UNKNOWN;
|
return FileTypes.UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
@ -304,6 +312,8 @@ public final class FileTypes {
|
||||||
return FileTypes.PNG;
|
return FileTypes.PNG;
|
||||||
} else if (filename.endsWith(EXTENSION_WEBP)) {
|
} else if (filename.endsWith(EXTENSION_WEBP)) {
|
||||||
return FileTypes.WEBP;
|
return FileTypes.WEBP;
|
||||||
|
} else if (filename.endsWith(EXTENSION_BMP) || filename.endsWith(EXTENSION_DIB)) {
|
||||||
|
return FileTypes.BMP;
|
||||||
} else {
|
} else {
|
||||||
return FileTypes.UNKNOWN;
|
return FileTypes.UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ import androidx.media3.common.util.TimestampAdjuster;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
import androidx.media3.common.util.UnstableApi;
|
||||||
import androidx.media3.extractor.amr.AmrExtractor;
|
import androidx.media3.extractor.amr.AmrExtractor;
|
||||||
import androidx.media3.extractor.avi.AviExtractor;
|
import androidx.media3.extractor.avi.AviExtractor;
|
||||||
|
import androidx.media3.extractor.bmp.BmpExtractor;
|
||||||
import androidx.media3.extractor.flac.FlacExtractor;
|
import androidx.media3.extractor.flac.FlacExtractor;
|
||||||
import androidx.media3.extractor.flv.FlvExtractor;
|
import androidx.media3.extractor.flv.FlvExtractor;
|
||||||
import androidx.media3.extractor.jpeg.JpegExtractor;
|
import androidx.media3.extractor.jpeg.JpegExtractor;
|
||||||
|
|
@ -89,6 +90,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
* <li>JPEG ({@link JpegExtractor})
|
* <li>JPEG ({@link JpegExtractor})
|
||||||
* <li>PNG ({@link PngExtractor})
|
* <li>PNG ({@link PngExtractor})
|
||||||
* <li>WEBP ({@link WebpExtractor})
|
* <li>WEBP ({@link WebpExtractor})
|
||||||
|
* <li>BMP ({@link BmpExtractor})
|
||||||
* <li>MIDI, if available, the MIDI extension's {@code androidx.media3.decoder.midi.MidiExtractor}
|
* <li>MIDI, if available, the MIDI extension's {@code androidx.media3.decoder.midi.MidiExtractor}
|
||||||
* is used.
|
* is used.
|
||||||
* </ul>
|
* </ul>
|
||||||
|
|
@ -121,7 +123,8 @@ public final class DefaultExtractorsFactory implements ExtractorsFactory {
|
||||||
FileTypes.MIDI,
|
FileTypes.MIDI,
|
||||||
FileTypes.JPEG,
|
FileTypes.JPEG,
|
||||||
FileTypes.PNG,
|
FileTypes.PNG,
|
||||||
FileTypes.WEBP
|
FileTypes.WEBP,
|
||||||
|
FileTypes.BMP
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final ExtensionLoader FLAC_EXTENSION_LOADER =
|
private static final ExtensionLoader FLAC_EXTENSION_LOADER =
|
||||||
|
|
@ -518,6 +521,9 @@ public final class DefaultExtractorsFactory implements ExtractorsFactory {
|
||||||
case FileTypes.WEBP:
|
case FileTypes.WEBP:
|
||||||
extractors.add(new WebpExtractor());
|
extractors.add(new WebpExtractor());
|
||||||
break;
|
break;
|
||||||
|
case FileTypes.BMP:
|
||||||
|
extractors.add(new BmpExtractor());
|
||||||
|
break;
|
||||||
case FileTypes.WEBVTT:
|
case FileTypes.WEBVTT:
|
||||||
case FileTypes.UNKNOWN:
|
case FileTypes.UNKNOWN:
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ import android.net.Uri;
|
||||||
import androidx.media3.common.MimeTypes;
|
import androidx.media3.common.MimeTypes;
|
||||||
import androidx.media3.extractor.amr.AmrExtractor;
|
import androidx.media3.extractor.amr.AmrExtractor;
|
||||||
import androidx.media3.extractor.avi.AviExtractor;
|
import androidx.media3.extractor.avi.AviExtractor;
|
||||||
|
import androidx.media3.extractor.bmp.BmpExtractor;
|
||||||
import androidx.media3.extractor.flac.FlacExtractor;
|
import androidx.media3.extractor.flac.FlacExtractor;
|
||||||
import androidx.media3.extractor.flv.FlvExtractor;
|
import androidx.media3.extractor.flv.FlvExtractor;
|
||||||
import androidx.media3.extractor.jpeg.JpegExtractor;
|
import androidx.media3.extractor.jpeg.JpegExtractor;
|
||||||
|
|
@ -78,7 +79,8 @@ public final class DefaultExtractorsFactoryTest {
|
||||||
AviExtractor.class,
|
AviExtractor.class,
|
||||||
JpegExtractor.class,
|
JpegExtractor.class,
|
||||||
PngExtractor.class,
|
PngExtractor.class,
|
||||||
WebpExtractor.class)
|
WebpExtractor.class,
|
||||||
|
BmpExtractor.class)
|
||||||
.inOrder();
|
.inOrder();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -123,7 +125,8 @@ public final class DefaultExtractorsFactoryTest {
|
||||||
AviExtractor.class,
|
AviExtractor.class,
|
||||||
JpegExtractor.class,
|
JpegExtractor.class,
|
||||||
PngExtractor.class,
|
PngExtractor.class,
|
||||||
WebpExtractor.class)
|
WebpExtractor.class,
|
||||||
|
BmpExtractor.class)
|
||||||
.inOrder();
|
.inOrder();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue