RemoteMediaExtractor.cpp revision d91dc5a0602f54fc0d4d2187f37b5b8169bb62c3
1/* 2 * Copyright 2017, The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#include <media/stagefright/InterfaceUtils.h> 18#include <media/MediaSource.h> 19#include <media/stagefright/RemoteMediaExtractor.h> 20 21namespace android { 22 23RemoteMediaExtractor::RemoteMediaExtractor(const sp<MediaExtractor> &extractor) 24 :mExtractor(extractor) {} 25 26RemoteMediaExtractor::~RemoteMediaExtractor() {} 27 28size_t RemoteMediaExtractor::countTracks() { 29 return mExtractor->countTracks(); 30} 31 32sp<IMediaSource> RemoteMediaExtractor::getTrack(size_t index) { 33 sp<MediaSource> source = mExtractor->getTrack(index); 34 return (source.get() == nullptr) ? nullptr : CreateIMediaSourceFromMediaSource(source); 35} 36 37sp<MetaData> RemoteMediaExtractor::getTrackMetaData(size_t index, uint32_t flags) { 38 return mExtractor->getTrackMetaData(index, flags); 39} 40 41sp<MetaData> RemoteMediaExtractor::getMetaData() { 42 return mExtractor->getMetaData(); 43} 44 45status_t RemoteMediaExtractor::getMetrics(Parcel *reply) { 46 return mExtractor->getMetrics(reply); 47} 48 49uint32_t RemoteMediaExtractor::flags() const { 50 return mExtractor->flags(); 51} 52 53char* RemoteMediaExtractor::getDrmTrackInfo(size_t trackID, int * len) { 54 return mExtractor->getDrmTrackInfo(trackID, len); 55} 56 57void RemoteMediaExtractor::setUID(uid_t uid) { 58 return mExtractor->setUID(uid); 59} 60 61status_t RemoteMediaExtractor::setMediaCas(const HInterfaceToken &casToken) { 62 return mExtractor->setMediaCas(casToken); 63} 64 65const char * RemoteMediaExtractor::name() { 66 return mExtractor->name(); 67} 68 69void RemoteMediaExtractor::release() { 70 return mExtractor->release(); 71} 72 73//////////////////////////////////////////////////////////////////////////////// 74 75// static 76sp<IMediaExtractor> RemoteMediaExtractor::wrap(const sp<MediaExtractor> &extractor) { 77 if (extractor.get() == nullptr) { 78 return nullptr; 79 } 80 return new RemoteMediaExtractor(extractor); 81} 82 83} // namespace android 84