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 UDP_PUSHER_H_ 1839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 1939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#define UDP_PUSHER_H_ 2039ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 2139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#include <media/stagefright/foundation/AHandler.h> 2239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 2339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#include <stdio.h> 2439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#include <arpa/inet.h> 2539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 2639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Hubernamespace android { 2739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 2839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huberstruct UDPPusher : public AHandler { 2939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber UDPPusher(const char *filename, unsigned port); 3039ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 3139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber void start(); 3239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 3339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huberprotected: 3439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber virtual ~UDPPusher(); 3539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber virtual void onMessageReceived(const sp<AMessage> &msg); 3639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 3739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huberprivate: 3839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber enum { 3939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber kWhatPush = 'push' 4039ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber }; 4139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 4239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber FILE *mFile; 4339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber int mSocket; 4439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber struct sockaddr_in mRemoteAddr; 4539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 4639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber uint32_t mFirstTimeMs; 4739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber int64_t mFirstTimeUs; 4839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 4939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber bool onPush(); 5039ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 5139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber DISALLOW_EVIL_CONSTRUCTORS(UDPPusher); 5239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber}; 5339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 5439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber} // namespace android 5539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 5639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#endif // UDP_PUSHER_H_ 57