126a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi/* 226a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi * Copyright (C) 2011 The Android Open Source Project 326a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi * 426a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi * Licensed under the Apache License, Version 2.0 (the "License"); 526a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi * you may not use this file except in compliance with the License. 626a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi * You may obtain a copy of the License at 726a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi * 826a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi * http://www.apache.org/licenses/LICENSE-2.0 926a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi * 1026a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi * Unless required by applicable law or agreed to in writing, software 1126a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi * distributed under the License is distributed on an "AS IS" BASIS, 1226a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1326a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi * See the License for the specific language governing permissions and 1426a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi * limitations under the License. 1526a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi */ 1626a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 1726a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi#ifndef DUMMY_RECORDER_H_ 1826a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi#define DUMMY_RECORDER_H_ 1926a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 2026a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi#include <pthread.h> 2126a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi#include <utils/String8.h> 2226a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi#include <media/stagefright/foundation/ABase.h> 2326a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 2426a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 2526a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketinamespace android { 2626a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 2726a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketiclass MediaSource; 2826a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketiclass MediaBuffer; 2926a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 3026a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketiclass DummyRecorder { 3126a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi public: 3226a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi // The media source from which this will receive frames 3326a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi sp<MediaSource> mSource; 3426a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi bool mStarted; 3526a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi pthread_t mThread; 3626a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 3726a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi status_t start(); 3826a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi status_t stop(); 3926a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 4026a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi // actual entry point for the thread 4126a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi void readFromSource(); 4226a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 4326a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi // static function to wrap the actual thread entry point 4426a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi static void *threadWrapper(void *pthis); 4526a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 4626a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi DummyRecorder(const sp<MediaSource> &source) : mSource(source) 4726a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi , mStarted(false) {} 4826a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi ~DummyRecorder( ) {} 4926a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 5026a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi private: 5126a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 5226a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi DISALLOW_EVIL_CONSTRUCTORS(DummyRecorder); 5326a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi}; 5426a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 5526a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi} // end of namespace android 5626a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi#endif 5726a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 5826a197120c1bad8797f35e9b43482f5466280f8cPannag Sanketi 59