149694688c82214f5fd9e969e177c9e126a240a26Andreas Huber/* 249694688c82214f5fd9e969e177c9e126a240a26Andreas Huber * Copyright (C) 2012 The Android Open Source Project 349694688c82214f5fd9e969e177c9e126a240a26Andreas Huber * 449694688c82214f5fd9e969e177c9e126a240a26Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 549694688c82214f5fd9e969e177c9e126a240a26Andreas Huber * you may not use this file except in compliance with the License. 649694688c82214f5fd9e969e177c9e126a240a26Andreas Huber * You may obtain a copy of the License at 749694688c82214f5fd9e969e177c9e126a240a26Andreas Huber * 849694688c82214f5fd9e969e177c9e126a240a26Andreas Huber * http://www.apache.org/licenses/LICENSE-2.0 949694688c82214f5fd9e969e177c9e126a240a26Andreas Huber * 1049694688c82214f5fd9e969e177c9e126a240a26Andreas Huber * Unless required by applicable law or agreed to in writing, software 1149694688c82214f5fd9e969e177c9e126a240a26Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 1249694688c82214f5fd9e969e177c9e126a240a26Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1349694688c82214f5fd9e969e177c9e126a240a26Andreas Huber * See the License for the specific language governing permissions and 1449694688c82214f5fd9e969e177c9e126a240a26Andreas Huber * limitations under the License. 1549694688c82214f5fd9e969e177c9e126a240a26Andreas Huber */ 1649694688c82214f5fd9e969e177c9e126a240a26Andreas Huber 1749694688c82214f5fd9e969e177c9e126a240a26Andreas Huber#ifndef A_MPEG2_TS_ASSEMBLER_H_ 1849694688c82214f5fd9e969e177c9e126a240a26Andreas Huber 1949694688c82214f5fd9e969e177c9e126a240a26Andreas Huber#define A_MPEG2_TS_ASSEMBLER_H_ 2049694688c82214f5fd9e969e177c9e126a240a26Andreas Huber 2149694688c82214f5fd9e969e177c9e126a240a26Andreas Huber#include "ARTPAssembler.h" 2249694688c82214f5fd9e969e177c9e126a240a26Andreas Huber 2349694688c82214f5fd9e969e177c9e126a240a26Andreas Hubernamespace android { 2449694688c82214f5fd9e969e177c9e126a240a26Andreas Huber 2549694688c82214f5fd9e969e177c9e126a240a26Andreas Huberstruct AMessage; 2649694688c82214f5fd9e969e177c9e126a240a26Andreas Huberstruct AString; 2786a58cabe322b746ab0eb17f0cade34ed68ba60eBernhard Rosenkränzerclass MetaData; 2849694688c82214f5fd9e969e177c9e126a240a26Andreas Huber 2949694688c82214f5fd9e969e177c9e126a240a26Andreas Huberstruct AMPEG2TSAssembler : public ARTPAssembler { 3049694688c82214f5fd9e969e177c9e126a240a26Andreas Huber AMPEG2TSAssembler( 3149694688c82214f5fd9e969e177c9e126a240a26Andreas Huber const sp<AMessage> ¬ify, 3249694688c82214f5fd9e969e177c9e126a240a26Andreas Huber const char *desc, const AString ¶ms); 3349694688c82214f5fd9e969e177c9e126a240a26Andreas Huber 3449694688c82214f5fd9e969e177c9e126a240a26Andreas Huberprotected: 3549694688c82214f5fd9e969e177c9e126a240a26Andreas Huber virtual ~AMPEG2TSAssembler(); 3649694688c82214f5fd9e969e177c9e126a240a26Andreas Huber 3749694688c82214f5fd9e969e177c9e126a240a26Andreas Huber virtual AssemblyStatus assembleMore(const sp<ARTPSource> &source); 3849694688c82214f5fd9e969e177c9e126a240a26Andreas Huber virtual void onByeReceived(); 3949694688c82214f5fd9e969e177c9e126a240a26Andreas Huber virtual void packetLost(); 4049694688c82214f5fd9e969e177c9e126a240a26Andreas Huber 4149694688c82214f5fd9e969e177c9e126a240a26Andreas Huberprivate: 4249694688c82214f5fd9e969e177c9e126a240a26Andreas Huber sp<AMessage> mNotifyMsg; 4349694688c82214f5fd9e969e177c9e126a240a26Andreas Huber bool mNextExpectedSeqNoValid; 4449694688c82214f5fd9e969e177c9e126a240a26Andreas Huber uint32_t mNextExpectedSeqNo; 4549694688c82214f5fd9e969e177c9e126a240a26Andreas Huber 4649694688c82214f5fd9e969e177c9e126a240a26Andreas Huber AssemblyStatus addPacket(const sp<ARTPSource> &source); 4749694688c82214f5fd9e969e177c9e126a240a26Andreas Huber 4849694688c82214f5fd9e969e177c9e126a240a26Andreas Huber DISALLOW_EVIL_CONSTRUCTORS(AMPEG2TSAssembler); 4949694688c82214f5fd9e969e177c9e126a240a26Andreas Huber}; 5049694688c82214f5fd9e969e177c9e126a240a26Andreas Huber 5149694688c82214f5fd9e969e177c9e126a240a26Andreas Huber} // namespace android 5249694688c82214f5fd9e969e177c9e126a240a26Andreas Huber 5349694688c82214f5fd9e969e177c9e126a240a26Andreas Huber#endif // A_MPEG2_TS_ASSEMBLER_H_ 5449694688c82214f5fd9e969e177c9e126a240a26Andreas Huber 55