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#ifndef ANDROID_MEDIA_EXTRACTOR_SERVICE_H 18b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen#define ANDROID_MEDIA_EXTRACTOR_SERVICE_H 19b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 20b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen#include <binder/BinderService.h> 21b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen#include <media/IMediaExtractorService.h> 22b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen#include <media/IMediaExtractor.h> 23b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 24b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissennamespace android { 25b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 26b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissenclass MediaExtractorService : public BinderService<MediaExtractorService>, public BnMediaExtractorService 27b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen{ 28b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen friend class BinderService<MediaExtractorService>; // for MediaExtractorService() 29b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissenpublic: 30b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen MediaExtractorService() : BnMediaExtractorService() { } 31b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen virtual ~MediaExtractorService() { } 32b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen virtual void onFirstRef() { } 33b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 34b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen static const char* getServiceName() { return "media.extractor"; } 35b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 36b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen virtual sp<IMediaExtractor> makeExtractor(const sp<IDataSource> &source, const char *mime); 37d49dbd6b625cddb82f3f7bbeac62d48ef338ef0fAndy Hung 38d49dbd6b625cddb82f3f7bbeac62d48ef338ef0fAndy Hung virtual sp<IDataSource> makeIDataSource(int fd, int64_t offset, int64_t length); 39d49dbd6b625cddb82f3f7bbeac62d48ef338ef0fAndy Hung 40a48a51c056198a778755cbed52884dc30b74ac0aMarco Nelissen virtual status_t dump(int fd, const Vector<String16>& args); 41b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 42b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen virtual status_t onTransact(uint32_t code, const Parcel& data, Parcel* reply, 43b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen uint32_t flags); 44b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 45b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissenprivate: 46b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen Mutex mLock; 47b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen}; 48b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 49b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen} // namespace android 50b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen 51b2487f03f12dcafdb801fc0007c8df8412397f44Marco Nelissen#endif // ANDROID_MEDIA_EXTRACTOR_SERVICE_H 52