157648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber/* 257648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * Copyright (C) 2010 The Android Open Source Project 357648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * 457648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 557648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * you may not use this file except in compliance with the License. 657648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * You may obtain a copy of the License at 757648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * 857648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * http://www.apache.org/licenses/LICENSE-2.0 957648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * 1057648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * Unless required by applicable law or agreed to in writing, software 1157648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 1257648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1357648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * See the License for the specific language governing permissions and 1457648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * limitations under the License. 1557648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber */ 1657648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 1757648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber#ifndef UDP_PUSHER_H_ 1857648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 1957648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber#define UDP_PUSHER_H_ 2057648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 2157648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber#include <media/stagefright/foundation/AHandler.h> 2257648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 2357648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber#include <stdio.h> 2457648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber#include <arpa/inet.h> 2557648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 2657648e4eec7dd2593af467877bc7cce4aa654759Andreas Hubernamespace android { 2757648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 2857648e4eec7dd2593af467877bc7cce4aa654759Andreas Huberstruct UDPPusher : public AHandler { 2957648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber UDPPusher(const char *filename, unsigned port); 3057648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 3157648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber void start(); 3257648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 3357648e4eec7dd2593af467877bc7cce4aa654759Andreas Huberprotected: 3457648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber virtual ~UDPPusher(); 3557648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber virtual void onMessageReceived(const sp<AMessage> &msg); 3657648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 3757648e4eec7dd2593af467877bc7cce4aa654759Andreas Huberprivate: 3857648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber enum { 3957648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber kWhatPush = 'push' 4057648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber }; 4157648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 4257648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber FILE *mFile; 4357648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber int mSocket; 4457648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber struct sockaddr_in mRemoteAddr; 4557648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 4657648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber uint32_t mFirstTimeMs; 4757648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber int64_t mFirstTimeUs; 4857648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 4957648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber bool onPush(); 5057648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 5157648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber DISALLOW_EVIL_CONSTRUCTORS(UDPPusher); 5257648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber}; 5357648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 5457648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber} // namespace android 5557648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber 5657648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber#endif // UDP_PUSHER_H_ 57