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