139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber/* 239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * Copyright (C) 2010 The Android Open Source Project 339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * 439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * you may not use this file except in compliance with the License. 639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * You may obtain a copy of the License at 739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * 839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * http://www.apache.org/licenses/LICENSE-2.0 939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * 1039ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * Unless required by applicable law or agreed to in writing, software 1139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 1239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * See the License for the specific language governing permissions and 1439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * limitations under the License. 1539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber */ 1639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 1739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#ifndef A_H263_ASSEMBLER_H_ 1839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 1939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#define A_H263_ASSEMBLER_H_ 2039ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 2139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#include "ARTPAssembler.h" 2239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 2339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#include <utils/List.h> 2439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 2539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#include <stdint.h> 2639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 2739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Hubernamespace android { 2839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 2939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huberstruct AMessage; 3039ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 3139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huberstruct AH263Assembler : public ARTPAssembler { 3239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber AH263Assembler(const sp<AMessage> ¬ify); 3339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 3439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huberprotected: 3539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber virtual ~AH263Assembler(); 3639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 3739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber virtual AssemblyStatus assembleMore(const sp<ARTPSource> &source); 3839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber virtual void onByeReceived(); 3939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber virtual void packetLost(); 4039ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 4139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huberprivate: 4239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber sp<AMessage> mNotifyMsg; 4339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber uint32_t mAccessUnitRTPTime; 4439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber bool mNextExpectedSeqNoValid; 4539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber uint32_t mNextExpectedSeqNo; 4639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber bool mAccessUnitDamaged; 4739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber List<sp<ABuffer> > mPackets; 4839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 4939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber AssemblyStatus addPacket(const sp<ARTPSource> &source); 5039ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber void submitAccessUnit(); 5139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 5239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber DISALLOW_EVIL_CONSTRUCTORS(AH263Assembler); 5339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber}; 5439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 5539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber} // namespace android 5639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 5739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#endif // A_H263_ASSEMBLER_H_ 58