1840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber/* 2840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber * Copyright (C) 2012 The Android Open Source Project 3840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber * 4840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 5840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber * you may not use this file except in compliance with the License. 6840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber * You may obtain a copy of the License at 7840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber * 8840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber * http://www.apache.org/licenses/LICENSE-2.0 9840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber * 10840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber * Unless required by applicable law or agreed to in writing, software 11840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 12840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber * See the License for the specific language governing permissions and 14840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber * limitations under the License. 15840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber */ 16840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber 17840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber#ifndef MP4_SOURCE_H 18840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber#define MP4_SOURCE_H 19840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber 20840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber#include "NuPlayerSource.h" 21840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber 22840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Hubernamespace android { 23840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber 24cb1f88c684140ce0eb407049a78f889bc7d51be1Marco Nelissenstruct FragmentedMP4Parser; 25840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber 26840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huberstruct MP4Source : public NuPlayer::Source { 27840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber MP4Source(const sp<IStreamSource> &source); 28840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber 29840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber virtual void start(); 30840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber 31840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber virtual status_t feedMoreTSData(); 32840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber 33840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber virtual sp<AMessage> getFormat(bool audio); 34840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber 35840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber virtual status_t dequeueAccessUnit( 36840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber bool audio, sp<ABuffer> *accessUnit); 37840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber 38840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huberprotected: 39840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber virtual ~MP4Source(); 40840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber 41840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huberprivate: 42840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber sp<IStreamSource> mSource; 43840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber sp<ALooper> mLooper; 44cb1f88c684140ce0eb407049a78f889bc7d51be1Marco Nelissen sp<FragmentedMP4Parser> mParser; 45840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber bool mEOS; 46840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber 47840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber DISALLOW_EVIL_CONSTRUCTORS(MP4Source); 48840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber}; 49840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber 50840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber} // namespace android 51840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber 52840667883fd09d44015716d79bc3ac4d60edc0f0Andreas Huber#endif // MP4_SOURCE_H 53