/* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.mozilla.thirdparty.com.google.android.exoplayer2.extractor.mp3; import org.mozilla.thirdparty.com.google.android.exoplayer2.C; import org.mozilla.thirdparty.com.google.android.exoplayer2.extractor.ConstantBitrateSeekMap; import org.mozilla.thirdparty.com.google.android.exoplayer2.extractor.MpegAudioHeader; /** * MP3 seeker that doesn't rely on metadata and seeks assuming the source has a constant bitrate. */ /* package */ final class ConstantBitrateSeeker extends ConstantBitrateSeekMap implements Seeker { /** * @param inputLength The length of the stream in bytes, or {@link C#LENGTH_UNSET} if unknown. * @param firstFramePosition The position of the first frame in the stream. * @param mpegAudioHeader The MPEG audio header associated with the first frame. */ public ConstantBitrateSeeker( long inputLength, long firstFramePosition, MpegAudioHeader mpegAudioHeader) { super(inputLength, firstFramePosition, mpegAudioHeader.bitrate, mpegAudioHeader.frameSize); } @Override public long getTimeUs(long position) { return getTimeUsAtPosition(position); } @Override public long getDataEndPosition() { return C.POSITION_UNSET; } }