13399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi/* 23399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi * Copyright (C) 2011 The Android Open Source Project 33399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi * 43399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi * Licensed under the Apache License, Version 2.0 (the "License"); 53399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi * you may not use this file except in compliance with the License. 63399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi * You may obtain a copy of the License at 73399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi * 83399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi * http://www.apache.org/licenses/LICENSE-2.0 93399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi * 103399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi * Unless required by applicable law or agreed to in writing, software 113399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi * distributed under the License is distributed on an "AS IS" BASIS, 123399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi * See the License for the specific language governing permissions and 143399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi * limitations under the License. 153399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi */ 163399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 173399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi#ifndef DUMMY_RECORDER_H_ 183399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi#define DUMMY_RECORDER_H_ 193399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 203399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi#include <pthread.h> 213399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi#include <utils/String8.h> 223399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi#include <media/stagefright/foundation/ABase.h> 233399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 243399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 253399b7267185646c69b04352211fca4fad9d7547Pannag Sanketinamespace android { 263399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 27ee4e1b1a63758941460ae79a064249d3a5189443Lajos Molnarstruct MediaSource; 283399b7267185646c69b04352211fca4fad9d7547Pannag Sanketiclass MediaBuffer; 293399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 303399b7267185646c69b04352211fca4fad9d7547Pannag Sanketiclass DummyRecorder { 313399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi public: 323399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi // The media source from which this will receive frames 333399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi sp<MediaSource> mSource; 343399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi bool mStarted; 353399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi pthread_t mThread; 363399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 373399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi status_t start(); 383399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi status_t stop(); 393399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 403399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi // actual entry point for the thread 413399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi void readFromSource(); 423399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 433399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi // static function to wrap the actual thread entry point 443399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi static void *threadWrapper(void *pthis); 453399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 4640d8899f60c5212af9d727ba0ffaaecf676ebd1dChih-Hung Hsieh explicit DummyRecorder(const sp<MediaSource> &source) : mSource(source) 473399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi , mStarted(false) {} 483399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi ~DummyRecorder( ) {} 493399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 503399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi private: 513399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 523399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi DISALLOW_EVIL_CONSTRUCTORS(DummyRecorder); 533399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi}; 543399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 553399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi} // end of namespace android 563399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi#endif 573399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 583399b7267185646c69b04352211fca4fad9d7547Pannag Sanketi 59