MediaExtractorService.cpp revision ebab3587f58316cdb488d44b9c17c35382fc8473
1b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen/* 2b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen * Copyright (C) 2013 The Android Open Source Project 3b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen * 4b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen * Licensed under the Apache License, Version 2.0 (the "License"); 5b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen * you may not use this file except in compliance with the License. 6b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen * You may obtain a copy of the License at 7b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen * 8b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen * http://www.apache.org/licenses/LICENSE-2.0 9b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen * 10b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen * Unless required by applicable law or agreed to in writing, software 11b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen * distributed under the License is distributed on an "AS IS" BASIS, 12b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen * See the License for the specific language governing permissions and 14b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen * limitations under the License. 15b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen */ 16b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 17b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen#define LOG_TAG "MediaExtractorService" 18b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen//#define LOG_NDEBUG 0 19b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen#include <utils/Log.h> 20b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 21b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen#include <media/stagefright/DataSource.h> 22b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen#include <media/stagefright/MediaExtractor.h> 23b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen#include "MediaExtractorService.h" 24b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 25b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissennamespace android { 26b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 27b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissensp<IMediaExtractor> MediaExtractorService::makeExtractor( 28b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen const sp<IDataSource> &remoteSource, const char *mime) { 29ebab3587f58316cdb488d44b9c17c35382fc8473Marco Nelissen ALOGV("@@@ MediaExtractorService::makeExtractor for %s", mime); 30b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 31b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen sp<DataSource> localSource = DataSource::CreateFromIDataSource(remoteSource); 32b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 33b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen sp<MediaExtractor> ret = MediaExtractor::CreateFromService(localSource, mime); 34b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 35ebab3587f58316cdb488d44b9c17c35382fc8473Marco Nelissen ALOGV("extractor service created %p (%s)", 36b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen ret.get(), 37b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen ret == NULL ? "" : ret->name()); 38b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 39b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen return ret; 40b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen} 41b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 42b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 43b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissenstatus_t MediaExtractorService::onTransact(uint32_t code, const Parcel& data, Parcel* reply, 44b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen uint32_t flags) 45b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen{ 46b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen return BnMediaExtractorService::onTransact(code, data, reply, flags); 47b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen} 48b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 49b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen} // namespace android 50