AMRExtractor.h revision 7e04dcf8d6784dd56f53aa90bf34431ab4f0710c
1f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber/* 2f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber * Copyright (C) 2009 The Android Open Source Project 3f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber * 4f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 5f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber * you may not use this file except in compliance with the License. 6f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber * You may obtain a copy of the License at 7f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber * 8f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber * http://www.apache.org/licenses/LICENSE-2.0 9f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber * 10f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber * Unless required by applicable law or agreed to in writing, software 11f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 12f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber * See the License for the specific language governing permissions and 14f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber * limitations under the License. 15f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber */ 16f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber 17f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber#ifndef AMR_EXTRACTOR_H_ 18f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber 19f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber#define AMR_EXTRACTOR_H_ 20f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber 21f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber#include <media/stagefright/MediaExtractor.h> 22f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber 23f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Hubernamespace android { 24f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber 25f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huberclass String8; 26f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber 27f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huberclass AMRExtractor : public MediaExtractor { 28f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huberpublic: 29f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber AMRExtractor(const sp<DataSource> &source); 30f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber 31f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber virtual size_t countTracks(); 32f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber virtual sp<MediaSource> getTrack(size_t index); 337e04dcf8d6784dd56f53aa90bf34431ab4f0710cAndreas Huber virtual sp<MetaData> getTrackMetaData(size_t index, uint32_t flags); 34f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber 35f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber static sp<MetaData> makeAMRFormat(bool isWide); 36f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber 37f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huberprotected: 38f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber virtual ~AMRExtractor(); 39f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber 40f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huberprivate: 41f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber sp<DataSource> mDataSource; 42f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber status_t mInitCheck; 43f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber bool mIsWide; 44f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber 45f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber AMRExtractor(const AMRExtractor &); 46f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber AMRExtractor &operator=(const AMRExtractor &); 47f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber}; 48f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber 49f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huberbool SniffAMR( 50f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber const sp<DataSource> &source, String8 *mimeType, float *confidence); 51f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber 52f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber} // namespace android 53f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber 54f75978f63a25e79c683e96611f95cb5cd49efd3dAndreas Huber#endif // AMR_EXTRACTOR_H_ 55