Search in sources :

Example 1 with Ac4Extractor

use of androidx.media3.extractor.ts.Ac4Extractor in project media by androidx.

the class DefaultExtractorsFactory method addExtractorsForFileType.

private void addExtractorsForFileType(@FileTypes.Type int fileType, List<Extractor> extractors) {
    switch(fileType) {
        case FileTypes.AC3:
            extractors.add(new Ac3Extractor());
            break;
        case FileTypes.AC4:
            extractors.add(new Ac4Extractor());
            break;
        case FileTypes.ADTS:
            extractors.add(new AdtsExtractor(adtsFlags | (constantBitrateSeekingEnabled ? AdtsExtractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING : 0) | (constantBitrateSeekingAlwaysEnabled ? AdtsExtractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING_ALWAYS : 0)));
            break;
        case FileTypes.AMR:
            extractors.add(new AmrExtractor(amrFlags | (constantBitrateSeekingEnabled ? AmrExtractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING : 0) | (constantBitrateSeekingAlwaysEnabled ? AmrExtractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING_ALWAYS : 0)));
            break;
        case FileTypes.FLAC:
            @Nullable Extractor flacExtractor = FLAC_EXTENSION_LOADER.getExtractor(flacFlags);
            if (flacExtractor != null) {
                extractors.add(flacExtractor);
            } else {
                extractors.add(new FlacExtractor(flacFlags));
            }
            break;
        case FileTypes.FLV:
            extractors.add(new FlvExtractor());
            break;
        case FileTypes.MATROSKA:
            extractors.add(new MatroskaExtractor(matroskaFlags));
            break;
        case FileTypes.MP3:
            extractors.add(new Mp3Extractor(mp3Flags | (constantBitrateSeekingEnabled ? Mp3Extractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING : 0) | (constantBitrateSeekingAlwaysEnabled ? Mp3Extractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING_ALWAYS : 0)));
            break;
        case FileTypes.MP4:
            extractors.add(new FragmentedMp4Extractor(fragmentedMp4Flags));
            extractors.add(new Mp4Extractor(mp4Flags));
            break;
        case FileTypes.OGG:
            extractors.add(new OggExtractor());
            break;
        case FileTypes.PS:
            extractors.add(new PsExtractor());
            break;
        case FileTypes.TS:
            extractors.add(new TsExtractor(tsMode, tsFlags, tsTimestampSearchBytes));
            break;
        case FileTypes.WAV:
            extractors.add(new WavExtractor());
            break;
        case FileTypes.JPEG:
            extractors.add(new JpegExtractor());
            break;
        case FileTypes.WEBVTT:
        case FileTypes.UNKNOWN:
        default:
            break;
    }
}
Also used : FragmentedMp4Extractor(androidx.media3.extractor.mp4.FragmentedMp4Extractor) JpegExtractor(androidx.media3.extractor.jpeg.JpegExtractor) Ac4Extractor(androidx.media3.extractor.ts.Ac4Extractor) AdtsExtractor(androidx.media3.extractor.ts.AdtsExtractor) Mp3Extractor(androidx.media3.extractor.mp3.Mp3Extractor) MatroskaExtractor(androidx.media3.extractor.mkv.MatroskaExtractor) TsExtractor(androidx.media3.extractor.ts.TsExtractor) FlacExtractor(androidx.media3.extractor.flac.FlacExtractor) AmrExtractor(androidx.media3.extractor.amr.AmrExtractor) Mp4Extractor(androidx.media3.extractor.mp4.Mp4Extractor) FragmentedMp4Extractor(androidx.media3.extractor.mp4.FragmentedMp4Extractor) PsExtractor(androidx.media3.extractor.ts.PsExtractor) OggExtractor(androidx.media3.extractor.ogg.OggExtractor) WavExtractor(androidx.media3.extractor.wav.WavExtractor) WavExtractor(androidx.media3.extractor.wav.WavExtractor) Ac4Extractor(androidx.media3.extractor.ts.Ac4Extractor) TsExtractor(androidx.media3.extractor.ts.TsExtractor) AmrExtractor(androidx.media3.extractor.amr.AmrExtractor) FlacExtractor(androidx.media3.extractor.flac.FlacExtractor) AdtsExtractor(androidx.media3.extractor.ts.AdtsExtractor) PsExtractor(androidx.media3.extractor.ts.PsExtractor) Mp3Extractor(androidx.media3.extractor.mp3.Mp3Extractor) OggExtractor(androidx.media3.extractor.ogg.OggExtractor) JpegExtractor(androidx.media3.extractor.jpeg.JpegExtractor) Ac3Extractor(androidx.media3.extractor.ts.Ac3Extractor) FlvExtractor(androidx.media3.extractor.flv.FlvExtractor) Mp4Extractor(androidx.media3.extractor.mp4.Mp4Extractor) MatroskaExtractor(androidx.media3.extractor.mkv.MatroskaExtractor) FragmentedMp4Extractor(androidx.media3.extractor.mp4.FragmentedMp4Extractor) FlvExtractor(androidx.media3.extractor.flv.FlvExtractor) Ac3Extractor(androidx.media3.extractor.ts.Ac3Extractor) Nullable(androidx.annotation.Nullable)

Example 2 with Ac4Extractor

use of androidx.media3.extractor.ts.Ac4Extractor in project ExoPlayer by google.

the class DefaultExtractorsFactory method addExtractorsForFileType.

private void addExtractorsForFileType(@FileTypes.Type int fileType, List<Extractor> extractors) {
    switch(fileType) {
        case FileTypes.AC3:
            extractors.add(new Ac3Extractor());
            break;
        case FileTypes.AC4:
            extractors.add(new Ac4Extractor());
            break;
        case FileTypes.ADTS:
            extractors.add(new AdtsExtractor(adtsFlags | (constantBitrateSeekingEnabled ? AdtsExtractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING : 0) | (constantBitrateSeekingAlwaysEnabled ? AdtsExtractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING_ALWAYS : 0)));
            break;
        case FileTypes.AMR:
            extractors.add(new AmrExtractor(amrFlags | (constantBitrateSeekingEnabled ? AmrExtractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING : 0) | (constantBitrateSeekingAlwaysEnabled ? AmrExtractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING_ALWAYS : 0)));
            break;
        case FileTypes.FLAC:
            @Nullable Extractor flacExtractor = FLAC_EXTENSION_LOADER.getExtractor(flacFlags);
            if (flacExtractor != null) {
                extractors.add(flacExtractor);
            } else {
                extractors.add(new FlacExtractor(flacFlags));
            }
            break;
        case FileTypes.FLV:
            extractors.add(new FlvExtractor());
            break;
        case FileTypes.MATROSKA:
            extractors.add(new MatroskaExtractor(matroskaFlags));
            break;
        case FileTypes.MP3:
            extractors.add(new Mp3Extractor(mp3Flags | (constantBitrateSeekingEnabled ? Mp3Extractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING : 0) | (constantBitrateSeekingAlwaysEnabled ? Mp3Extractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING_ALWAYS : 0)));
            break;
        case FileTypes.MP4:
            extractors.add(new FragmentedMp4Extractor(fragmentedMp4Flags));
            extractors.add(new Mp4Extractor(mp4Flags));
            break;
        case FileTypes.OGG:
            extractors.add(new OggExtractor());
            break;
        case FileTypes.PS:
            extractors.add(new PsExtractor());
            break;
        case FileTypes.TS:
            extractors.add(new TsExtractor(tsMode, tsFlags, tsTimestampSearchBytes));
            break;
        case FileTypes.WAV:
            extractors.add(new WavExtractor());
            break;
        case FileTypes.JPEG:
            extractors.add(new JpegExtractor());
            break;
        case FileTypes.WEBVTT:
        case FileTypes.UNKNOWN:
        default:
            break;
    }
}
Also used : FragmentedMp4Extractor(com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor) JpegExtractor(com.google.android.exoplayer2.extractor.jpeg.JpegExtractor) Ac4Extractor(com.google.android.exoplayer2.extractor.ts.Ac4Extractor) AdtsExtractor(com.google.android.exoplayer2.extractor.ts.AdtsExtractor) Mp3Extractor(com.google.android.exoplayer2.extractor.mp3.Mp3Extractor) MatroskaExtractor(com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor) TsExtractor(com.google.android.exoplayer2.extractor.ts.TsExtractor) FlacExtractor(com.google.android.exoplayer2.extractor.flac.FlacExtractor) AmrExtractor(com.google.android.exoplayer2.extractor.amr.AmrExtractor) FragmentedMp4Extractor(com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor) Mp4Extractor(com.google.android.exoplayer2.extractor.mp4.Mp4Extractor) PsExtractor(com.google.android.exoplayer2.extractor.ts.PsExtractor) OggExtractor(com.google.android.exoplayer2.extractor.ogg.OggExtractor) WavExtractor(com.google.android.exoplayer2.extractor.wav.WavExtractor) FragmentedMp4Extractor(com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor) PsExtractor(com.google.android.exoplayer2.extractor.ts.PsExtractor) FlvExtractor(com.google.android.exoplayer2.extractor.flv.FlvExtractor) OggExtractor(com.google.android.exoplayer2.extractor.ogg.OggExtractor) TsExtractor(com.google.android.exoplayer2.extractor.ts.TsExtractor) JpegExtractor(com.google.android.exoplayer2.extractor.jpeg.JpegExtractor) Mp4Extractor(com.google.android.exoplayer2.extractor.mp4.Mp4Extractor) Mp3Extractor(com.google.android.exoplayer2.extractor.mp3.Mp3Extractor) Ac4Extractor(com.google.android.exoplayer2.extractor.ts.Ac4Extractor) WavExtractor(com.google.android.exoplayer2.extractor.wav.WavExtractor) AdtsExtractor(com.google.android.exoplayer2.extractor.ts.AdtsExtractor) Ac3Extractor(com.google.android.exoplayer2.extractor.ts.Ac3Extractor) AmrExtractor(com.google.android.exoplayer2.extractor.amr.AmrExtractor) MatroskaExtractor(com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor) FlacExtractor(com.google.android.exoplayer2.extractor.flac.FlacExtractor) FlvExtractor(com.google.android.exoplayer2.extractor.flv.FlvExtractor) Ac3Extractor(com.google.android.exoplayer2.extractor.ts.Ac3Extractor) Nullable(androidx.annotation.Nullable)

Example 3 with Ac4Extractor

use of androidx.media3.extractor.ts.Ac4Extractor in project ExoPlayer by google.

the class BundledHlsMediaChunkExtractor method recreate.

@Override
public HlsMediaChunkExtractor recreate() {
    Assertions.checkState(!isReusable());
    Extractor newExtractorInstance;
    if (extractor instanceof WebvttExtractor) {
        newExtractorInstance = new WebvttExtractor(multivariantPlaylistFormat.language, timestampAdjuster);
    } else if (extractor instanceof AdtsExtractor) {
        newExtractorInstance = new AdtsExtractor();
    } else if (extractor instanceof Ac3Extractor) {
        newExtractorInstance = new Ac3Extractor();
    } else if (extractor instanceof Ac4Extractor) {
        newExtractorInstance = new Ac4Extractor();
    } else if (extractor instanceof Mp3Extractor) {
        newExtractorInstance = new Mp3Extractor();
    } else {
        throw new IllegalStateException("Unexpected extractor type for recreation: " + extractor.getClass().getSimpleName());
    }
    return new BundledHlsMediaChunkExtractor(newExtractorInstance, multivariantPlaylistFormat, timestampAdjuster);
}
Also used : AdtsExtractor(com.google.android.exoplayer2.extractor.ts.AdtsExtractor) Ac4Extractor(com.google.android.exoplayer2.extractor.ts.Ac4Extractor) Mp3Extractor(com.google.android.exoplayer2.extractor.mp3.Mp3Extractor) FragmentedMp4Extractor(com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor) Extractor(com.google.android.exoplayer2.extractor.Extractor) TsExtractor(com.google.android.exoplayer2.extractor.ts.TsExtractor) Ac3Extractor(com.google.android.exoplayer2.extractor.ts.Ac3Extractor) Mp3Extractor(com.google.android.exoplayer2.extractor.mp3.Mp3Extractor) Ac4Extractor(com.google.android.exoplayer2.extractor.ts.Ac4Extractor) AdtsExtractor(com.google.android.exoplayer2.extractor.ts.AdtsExtractor) Ac3Extractor(com.google.android.exoplayer2.extractor.ts.Ac3Extractor)

Example 4 with Ac4Extractor

use of androidx.media3.extractor.ts.Ac4Extractor in project Telegram-FOSS by Telegram-FOSS-Team.

the class DefaultExtractorsFactory method createExtractors.

@Override
public synchronized Extractor[] createExtractors() {
    Extractor[] extractors = new Extractor[14];
    extractors[0] = new MatroskaExtractor(matroskaFlags);
    extractors[1] = new FragmentedMp4Extractor(fragmentedMp4Flags);
    extractors[2] = new Mp4Extractor(mp4Flags);
    extractors[3] = new OggExtractor();
    extractors[4] = new Mp3Extractor(mp3Flags | (constantBitrateSeekingEnabled ? Mp3Extractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING : 0));
    extractors[5] = new AdtsExtractor(adtsFlags | (constantBitrateSeekingEnabled ? AdtsExtractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING : 0));
    extractors[6] = new Ac3Extractor();
    extractors[7] = new TsExtractor(tsMode, tsFlags);
    extractors[8] = new FlvExtractor();
    extractors[9] = new PsExtractor();
    extractors[10] = new WavExtractor();
    extractors[11] = new AmrExtractor(amrFlags | (constantBitrateSeekingEnabled ? AmrExtractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING : 0));
    extractors[12] = new Ac4Extractor();
    if (FLAC_EXTENSION_EXTRACTOR_CONSTRUCTOR != null) {
        try {
            extractors[13] = FLAC_EXTENSION_EXTRACTOR_CONSTRUCTOR.newInstance();
        } catch (Exception e) {
            // Should never happen.
            throw new IllegalStateException("Unexpected error creating FLAC extractor", e);
        }
    } else {
        extractors[13] = new FlacExtractor();
    }
    return extractors;
}
Also used : FragmentedMp4Extractor(com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor) AdtsExtractor(com.google.android.exoplayer2.extractor.ts.AdtsExtractor) Ac4Extractor(com.google.android.exoplayer2.extractor.ts.Ac4Extractor) Mp3Extractor(com.google.android.exoplayer2.extractor.mp3.Mp3Extractor) MatroskaExtractor(com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor) TsExtractor(com.google.android.exoplayer2.extractor.ts.TsExtractor) FlacExtractor(com.google.android.exoplayer2.extractor.flac.FlacExtractor) AmrExtractor(com.google.android.exoplayer2.extractor.amr.AmrExtractor) FragmentedMp4Extractor(com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor) Mp4Extractor(com.google.android.exoplayer2.extractor.mp4.Mp4Extractor) PsExtractor(com.google.android.exoplayer2.extractor.ts.PsExtractor) OggExtractor(com.google.android.exoplayer2.extractor.ogg.OggExtractor) WavExtractor(com.google.android.exoplayer2.extractor.wav.WavExtractor) FragmentedMp4Extractor(com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor) PsExtractor(com.google.android.exoplayer2.extractor.ts.PsExtractor) FlvExtractor(com.google.android.exoplayer2.extractor.flv.FlvExtractor) OggExtractor(com.google.android.exoplayer2.extractor.ogg.OggExtractor) TsExtractor(com.google.android.exoplayer2.extractor.ts.TsExtractor) Mp4Extractor(com.google.android.exoplayer2.extractor.mp4.Mp4Extractor) Ac3Extractor(com.google.android.exoplayer2.extractor.ts.Ac3Extractor) Mp3Extractor(com.google.android.exoplayer2.extractor.mp3.Mp3Extractor) Ac4Extractor(com.google.android.exoplayer2.extractor.ts.Ac4Extractor) WavExtractor(com.google.android.exoplayer2.extractor.wav.WavExtractor) AmrExtractor(com.google.android.exoplayer2.extractor.amr.AmrExtractor) MatroskaExtractor(com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor) AdtsExtractor(com.google.android.exoplayer2.extractor.ts.AdtsExtractor) FlacExtractor(com.google.android.exoplayer2.extractor.flac.FlacExtractor) FlvExtractor(com.google.android.exoplayer2.extractor.flv.FlvExtractor) Ac3Extractor(com.google.android.exoplayer2.extractor.ts.Ac3Extractor)

Example 5 with Ac4Extractor

use of androidx.media3.extractor.ts.Ac4Extractor in project Telegram-FOSS by Telegram-FOSS-Team.

the class DefaultHlsExtractorFactory method createExtractor.

@Override
public Result createExtractor(@Nullable Extractor previousExtractor, Uri uri, Format format, @Nullable List<Format> muxedCaptionFormats, TimestampAdjuster timestampAdjuster, Map<String, List<String>> responseHeaders, ExtractorInput extractorInput) throws InterruptedException, IOException {
    if (previousExtractor != null) {
        // A extractor has already been successfully used. Return one of the same type.
        if (isReusable(previousExtractor)) {
            return buildResult(previousExtractor);
        } else {
            Result result = buildResultForSameExtractorType(previousExtractor, format, timestampAdjuster);
            if (result == null) {
                throw new IllegalArgumentException("Unexpected previousExtractor type: " + previousExtractor.getClass().getSimpleName());
            }
        }
    }
    // Try selecting the extractor by the file extension.
    Extractor extractorByFileExtension = createExtractorByFileExtension(uri, format, muxedCaptionFormats, timestampAdjuster);
    extractorInput.resetPeekPosition();
    if (sniffQuietly(extractorByFileExtension, extractorInput)) {
        return buildResult(extractorByFileExtension);
    }
    if (!(extractorByFileExtension instanceof WebvttExtractor)) {
        WebvttExtractor webvttExtractor = new WebvttExtractor(format.language, timestampAdjuster);
        if (sniffQuietly(webvttExtractor, extractorInput)) {
            return buildResult(webvttExtractor);
        }
    }
    if (!(extractorByFileExtension instanceof AdtsExtractor)) {
        AdtsExtractor adtsExtractor = new AdtsExtractor();
        if (sniffQuietly(adtsExtractor, extractorInput)) {
            return buildResult(adtsExtractor);
        }
    }
    if (!(extractorByFileExtension instanceof Ac3Extractor)) {
        Ac3Extractor ac3Extractor = new Ac3Extractor();
        if (sniffQuietly(ac3Extractor, extractorInput)) {
            return buildResult(ac3Extractor);
        }
    }
    if (!(extractorByFileExtension instanceof Ac4Extractor)) {
        Ac4Extractor ac4Extractor = new Ac4Extractor();
        if (sniffQuietly(ac4Extractor, extractorInput)) {
            return buildResult(ac4Extractor);
        }
    }
    if (!(extractorByFileExtension instanceof Mp3Extractor)) {
        Mp3Extractor mp3Extractor = new Mp3Extractor(/* flags= */
        0, /* forcedFirstSampleTimestampUs= */
        0);
        if (sniffQuietly(mp3Extractor, extractorInput)) {
            return buildResult(mp3Extractor);
        }
    }
    if (!(extractorByFileExtension instanceof FragmentedMp4Extractor)) {
        FragmentedMp4Extractor fragmentedMp4Extractor = createFragmentedMp4Extractor(timestampAdjuster, format, muxedCaptionFormats);
        if (sniffQuietly(fragmentedMp4Extractor, extractorInput)) {
            return buildResult(fragmentedMp4Extractor);
        }
    }
    if (!(extractorByFileExtension instanceof TsExtractor)) {
        TsExtractor tsExtractor = createTsExtractor(payloadReaderFactoryFlags, exposeCea608WhenMissingDeclarations, format, muxedCaptionFormats, timestampAdjuster);
        if (sniffQuietly(tsExtractor, extractorInput)) {
            return buildResult(tsExtractor);
        }
    }
    // Fall back on the extractor created by file extension.
    return buildResult(extractorByFileExtension);
}
Also used : FragmentedMp4Extractor(com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor) AdtsExtractor(com.google.android.exoplayer2.extractor.ts.AdtsExtractor) Ac4Extractor(com.google.android.exoplayer2.extractor.ts.Ac4Extractor) Mp3Extractor(com.google.android.exoplayer2.extractor.mp3.Mp3Extractor) FragmentedMp4Extractor(com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor) Extractor(com.google.android.exoplayer2.extractor.Extractor) TsExtractor(com.google.android.exoplayer2.extractor.ts.TsExtractor) Ac3Extractor(com.google.android.exoplayer2.extractor.ts.Ac3Extractor) Mp3Extractor(com.google.android.exoplayer2.extractor.mp3.Mp3Extractor) Ac4Extractor(com.google.android.exoplayer2.extractor.ts.Ac4Extractor) AdtsExtractor(com.google.android.exoplayer2.extractor.ts.AdtsExtractor) TsExtractor(com.google.android.exoplayer2.extractor.ts.TsExtractor) Ac3Extractor(com.google.android.exoplayer2.extractor.ts.Ac3Extractor)

Aggregations

Mp3Extractor (com.google.android.exoplayer2.extractor.mp3.Mp3Extractor)4 FragmentedMp4Extractor (com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor)4 Ac3Extractor (com.google.android.exoplayer2.extractor.ts.Ac3Extractor)4 Ac4Extractor (com.google.android.exoplayer2.extractor.ts.Ac4Extractor)4 AdtsExtractor (com.google.android.exoplayer2.extractor.ts.AdtsExtractor)4 TsExtractor (com.google.android.exoplayer2.extractor.ts.TsExtractor)4 Nullable (androidx.annotation.Nullable)2 Mp3Extractor (androidx.media3.extractor.mp3.Mp3Extractor)2 FragmentedMp4Extractor (androidx.media3.extractor.mp4.FragmentedMp4Extractor)2 Ac3Extractor (androidx.media3.extractor.ts.Ac3Extractor)2 Ac4Extractor (androidx.media3.extractor.ts.Ac4Extractor)2 AdtsExtractor (androidx.media3.extractor.ts.AdtsExtractor)2 TsExtractor (androidx.media3.extractor.ts.TsExtractor)2 Extractor (com.google.android.exoplayer2.extractor.Extractor)2 AmrExtractor (com.google.android.exoplayer2.extractor.amr.AmrExtractor)2 FlacExtractor (com.google.android.exoplayer2.extractor.flac.FlacExtractor)2 FlvExtractor (com.google.android.exoplayer2.extractor.flv.FlvExtractor)2 MatroskaExtractor (com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor)2 Mp4Extractor (com.google.android.exoplayer2.extractor.mp4.Mp4Extractor)2 OggExtractor (com.google.android.exoplayer2.extractor.ogg.OggExtractor)2