mirror of
https://github.com/samsonjs/media.git
synced 2026-04-15 12:55:46 +00:00
Add PngExtractor to DefaultExtractorsFactory
PiperOrigin-RevId: 552506545
This commit is contained in:
parent
b8e6f27caf
commit
87a020a154
3 changed files with 41 additions and 6 deletions
|
|
@ -35,16 +35,34 @@ import java.util.Map;
|
|||
public final class FileTypes {
|
||||
|
||||
/**
|
||||
* File types. One of {@link #UNKNOWN}, {@link #AC3}, {@link #AC4}, {@link #ADTS}, {@link #AMR},
|
||||
* {@link #FLAC}, {@link #FLV}, {@link #MATROSKA}, {@link #MP3}, {@link #MP4}, {@link #OGG},
|
||||
* {@link #PS}, {@link #TS}, {@link #WAV}, {@link #WEBVTT}, {@link #JPEG} and {@link #MIDI}.
|
||||
* File types. One of the following:
|
||||
*
|
||||
* <ul>
|
||||
* <li>{@link #UNKNOWN}
|
||||
* <li>{@link #AC3}
|
||||
* <li>{@link #AC4}
|
||||
* <li>{@link #ADTS}
|
||||
* <li>{@link #AMR}
|
||||
* <li>{@link #FLAC}
|
||||
* <li>{@link #MATROSKA}
|
||||
* <li>{@link #MP3}
|
||||
* <li>{@link #MP4}
|
||||
* <li>{@link #OGG}
|
||||
* <li>{@link #PS}
|
||||
* <li>{@link #TS}
|
||||
* <li>{@link #WEBVTT}
|
||||
* <li>{@link #JPEG}
|
||||
* <li>{@link #MIDI}
|
||||
* <li>{@link #AVI}
|
||||
* <li>{@link #PNG}
|
||||
* </ul>
|
||||
*/
|
||||
@Documented
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@Target(TYPE_USE)
|
||||
@IntDef({
|
||||
UNKNOWN, AC3, AC4, ADTS, AMR, FLAC, FLV, MATROSKA, MP3, MP4, OGG, PS, TS, WAV, WEBVTT, JPEG,
|
||||
MIDI, AVI
|
||||
MIDI, AVI, PNG
|
||||
})
|
||||
public @interface Type {}
|
||||
|
||||
|
|
@ -102,6 +120,9 @@ public final class FileTypes {
|
|||
/** File type for the AVI format. */
|
||||
public static final int AVI = 16;
|
||||
|
||||
/** File type for the PNG format. */
|
||||
public static final int PNG = 17;
|
||||
|
||||
@VisibleForTesting /* package */ static final String HEADER_CONTENT_TYPE = "Content-Type";
|
||||
|
||||
private static final String EXTENSION_AC3 = ".ac3";
|
||||
|
|
@ -137,6 +158,7 @@ public final class FileTypes {
|
|||
private static final String EXTENSION_JPG = ".jpg";
|
||||
private static final String EXTENSION_JPEG = ".jpeg";
|
||||
private static final String EXTENSION_AVI = ".avi";
|
||||
private static final String EXTENSION_PNG = ".png";
|
||||
|
||||
private FileTypes() {}
|
||||
|
||||
|
|
@ -202,6 +224,8 @@ public final class FileTypes {
|
|||
return FileTypes.JPEG;
|
||||
case MimeTypes.VIDEO_AVI:
|
||||
return FileTypes.AVI;
|
||||
case MimeTypes.IMAGE_PNG:
|
||||
return FileTypes.PNG;
|
||||
default:
|
||||
return FileTypes.UNKNOWN;
|
||||
}
|
||||
|
|
@ -269,6 +293,8 @@ public final class FileTypes {
|
|||
return FileTypes.JPEG;
|
||||
} else if (filename.endsWith(EXTENSION_AVI)) {
|
||||
return FileTypes.AVI;
|
||||
} else if (filename.endsWith(EXTENSION_PNG)) {
|
||||
return FileTypes.PNG;
|
||||
} else {
|
||||
return FileTypes.UNKNOWN;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ import androidx.media3.extractor.mp3.Mp3Extractor;
|
|||
import androidx.media3.extractor.mp4.FragmentedMp4Extractor;
|
||||
import androidx.media3.extractor.mp4.Mp4Extractor;
|
||||
import androidx.media3.extractor.ogg.OggExtractor;
|
||||
import androidx.media3.extractor.png.PngExtractor;
|
||||
import androidx.media3.extractor.text.DefaultSubtitleParserFactory;
|
||||
import androidx.media3.extractor.text.SubtitleParser;
|
||||
import androidx.media3.extractor.text.SubtitleTranscodingExtractor;
|
||||
|
|
@ -85,6 +86,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
|||
* the FLAC extension or the FFmpeg extension.
|
||||
* </ul>
|
||||
* <li>JPEG ({@link JpegExtractor})
|
||||
* <li>PNG ({@link PngExtractor})
|
||||
* <li>MIDI, if available, the MIDI extension's {@code androidx.media3.decoder.midi.MidiExtractor}
|
||||
* is used.
|
||||
* </ul>
|
||||
|
|
@ -116,6 +118,7 @@ public final class DefaultExtractorsFactory implements ExtractorsFactory {
|
|||
FileTypes.AVI,
|
||||
FileTypes.MIDI,
|
||||
FileTypes.JPEG,
|
||||
FileTypes.PNG,
|
||||
};
|
||||
|
||||
private static final ExtensionLoader FLAC_EXTENSION_LOADER =
|
||||
|
|
@ -506,6 +509,9 @@ public final class DefaultExtractorsFactory implements ExtractorsFactory {
|
|||
case FileTypes.AVI:
|
||||
extractors.add(new AviExtractor());
|
||||
break;
|
||||
case FileTypes.PNG:
|
||||
extractors.add(new PngExtractor());
|
||||
break;
|
||||
case FileTypes.WEBVTT:
|
||||
case FileTypes.UNKNOWN:
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import androidx.media3.extractor.mp3.Mp3Extractor;
|
|||
import androidx.media3.extractor.mp4.FragmentedMp4Extractor;
|
||||
import androidx.media3.extractor.mp4.Mp4Extractor;
|
||||
import androidx.media3.extractor.ogg.OggExtractor;
|
||||
import androidx.media3.extractor.png.PngExtractor;
|
||||
import androidx.media3.extractor.text.SubtitleTranscodingExtractor;
|
||||
import androidx.media3.extractor.ts.Ac3Extractor;
|
||||
import androidx.media3.extractor.ts.Ac4Extractor;
|
||||
|
|
@ -74,7 +75,8 @@ public final class DefaultExtractorsFactoryTest {
|
|||
Ac4Extractor.class,
|
||||
Mp3Extractor.class,
|
||||
AviExtractor.class,
|
||||
JpegExtractor.class)
|
||||
JpegExtractor.class,
|
||||
PngExtractor.class)
|
||||
.inOrder();
|
||||
}
|
||||
|
||||
|
|
@ -117,7 +119,8 @@ public final class DefaultExtractorsFactoryTest {
|
|||
Ac3Extractor.class,
|
||||
Ac4Extractor.class,
|
||||
AviExtractor.class,
|
||||
JpegExtractor.class)
|
||||
JpegExtractor.class,
|
||||
PngExtractor.class)
|
||||
.inOrder();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue