1cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber/* 2cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber * Copyright (C) 2012 The Android Open Source Project 3cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber * 4cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 5cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber * you may not use this file except in compliance with the License. 6cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber * You may obtain a copy of the License at 7cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber * 8cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber * http://www.apache.org/licenses/LICENSE-2.0 9cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber * 10cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber * Unless required by applicable law or agreed to in writing, software 11cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 12cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber * See the License for the specific language governing permissions and 14cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber * limitations under the License. 15cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber */ 16cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber 17cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber#ifndef A_MPEG2_TS_ASSEMBLER_H_ 18cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber 19cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber#define A_MPEG2_TS_ASSEMBLER_H_ 20cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber 21cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber#include "ARTPAssembler.h" 22cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber 23cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Hubernamespace android { 24cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber 25cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huberstruct AMessage; 26cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huberstruct AString; 27cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huberstruct MetaData; 28cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber 29cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huberstruct AMPEG2TSAssembler : public ARTPAssembler { 30cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber AMPEG2TSAssembler( 31cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber const sp<AMessage> ¬ify, 32cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber const char *desc, const AString ¶ms); 33cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber 34cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huberprotected: 35cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber virtual ~AMPEG2TSAssembler(); 36cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber 37cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber virtual AssemblyStatus assembleMore(const sp<ARTPSource> &source); 38cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber virtual void onByeReceived(); 39cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber virtual void packetLost(); 40cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber 41cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huberprivate: 42cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber sp<AMessage> mNotifyMsg; 43cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber bool mNextExpectedSeqNoValid; 44cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber uint32_t mNextExpectedSeqNo; 45cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber 46cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber AssemblyStatus addPacket(const sp<ARTPSource> &source); 47cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber 48cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber DISALLOW_EVIL_CONSTRUCTORS(AMPEG2TSAssembler); 49cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber}; 50cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber 51cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber} // namespace android 52cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber 53cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber#endif // A_MPEG2_TS_ASSEMBLER_H_ 54cfaeeec0900014d97e15829e0fa52f865ee4c786Andreas Huber 55