14456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber/* 24456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber * Copyright (C) 2010 The Android Open Source Project 34456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber * 44456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 54456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber * you may not use this file except in compliance with the License. 64456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber * You may obtain a copy of the License at 74456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber * 84456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber * http://www.apache.org/licenses/LICENSE-2.0 94456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber * 104456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber * Unless required by applicable law or agreed to in writing, software 114456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 124456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber * See the License for the specific language governing permissions and 144456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber * limitations under the License. 154456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber */ 164456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 174456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber#ifndef VBRI_SEEKER_H_ 184456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 194456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber#define VBRI_SEEKER_H_ 204456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 214456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber#include "include/MP3Seeker.h" 224456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 234456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber#include <utils/Vector.h> 244456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 254456da54bcd206ed1f518c69cc959ca65a179c83Andreas Hubernamespace android { 264456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 274456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huberstruct DataSource; 284456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 294456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huberstruct VBRISeeker : public MP3Seeker { 304456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber static sp<VBRISeeker> CreateFromSource( 31c7fc37a3dab9bd1f96713649f351b5990e6316ffJames Dong const sp<DataSource> &source, off64_t post_id3_pos); 324456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 334456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber virtual bool getDuration(int64_t *durationUs); 34c7fc37a3dab9bd1f96713649f351b5990e6316ffJames Dong virtual bool getOffsetForTime(int64_t *timeUs, off64_t *pos); 354456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 364456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huberprivate: 37c7fc37a3dab9bd1f96713649f351b5990e6316ffJames Dong off64_t mBasePos; 384456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber int64_t mDurationUs; 394456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber Vector<uint32_t> mSegments; 404456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 414456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber VBRISeeker(); 424456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 434456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber DISALLOW_EVIL_CONSTRUCTORS(VBRISeeker); 444456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber}; 454456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 464456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber} // namespace android 474456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 484456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber#endif // VBRI_SEEKER_H_ 494456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 504456da54bcd206ed1f518c69cc959ca65a179c83Andreas Huber 51