00001 /*!@file Media/NullOutputStream.H Write frames to .null files */ 00002 00003 // //////////////////////////////////////////////////////////////////// // 00004 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2005 // 00005 // by the University of Southern California (USC) and the iLab at USC. // 00006 // See http://iLab.usc.edu for information about this project. // 00007 // //////////////////////////////////////////////////////////////////// // 00008 // Major portions of the iLab Neuromorphic Vision Toolkit are protected // 00009 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency // 00010 // in Visual Environments, and Applications'' by Christof Koch and // 00011 // Laurent Itti, California Institute of Technology, 2001 (patent // 00012 // pending; application number 09/912,225 filed July 23, 2001; see // 00013 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status). // 00014 // //////////////////////////////////////////////////////////////////// // 00015 // This file is part of the iLab Neuromorphic Vision C++ Toolkit. // 00016 // // 00017 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can // 00018 // redistribute it and/or modify it under the terms of the GNU General // 00019 // Public License as published by the Free Software Foundation; either // 00020 // version 2 of the License, or (at your option) any later version. // 00021 // // 00022 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope // 00023 // that it will be useful, but WITHOUT ANY WARRANTY; without even the // 00024 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // 00025 // PURPOSE. See the GNU General Public License for more details. // 00026 // // 00027 // You should have received a copy of the GNU General Public License // 00028 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write // 00029 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, // 00030 // Boston, MA 02111-1307 USA. // 00031 // //////////////////////////////////////////////////////////////////// // 00032 // 00033 // Primary maintainer for this file: Rob Peters <rjpeters at usc dot edu> 00034 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Media/NullOutputStream.H $ 00035 // $Id: NullOutputStream.H 8069 2007-03-08 05:01:16Z rjpeters $ 00036 // 00037 00038 #ifndef MEDIA_NULLOUTPUTSTREAM_H_DEFINED 00039 #define MEDIA_NULLOUTPUTSTREAM_H_DEFINED 00040 00041 #include "Component/ModelComponent.H" 00042 #include "Component/ModelParam.H" 00043 #include "Transport/FrameOstream.H" 00044 00045 // ###################################################################### 00046 // ###################################################################### 00047 //! NullOutputStream writes nothing, it is a fake output stream 00048 /*! This may be useful in situations where you want to guarantee that 00049 you are running a model in the exact same conditions as you would 00050 normally do when you write, e.g., a movie out with your results, 00051 except that you don't want to spend the time encoding the 00052 movie. Typically this may be useful while doing parameter searches 00053 where you want to process data but do not need the visual displays 00054 until you have found your final set of parameters. With 00055 NullOutputStream selected as output, you will still go through the 00056 motions of building output frames as you normally would, just they 00057 will not be saved anywhere. */ 00058 00059 class NullOutputStream : public FrameOstream 00060 { 00061 public: 00062 //! Construct an mpegstream object for mpeg output 00063 NullOutputStream(OptionManager& mgr, 00064 const std::string& descrName = "Null Output Stream", 00065 const std::string& tagName = "NullOutputStream"); 00066 00067 //! Destructor 00068 virtual ~NullOutputStream(); 00069 00070 //! Write a frame to null 00071 /*! We just print a message and discard the frame. */ 00072 virtual void writeFrame(const GenericFrame& frame, 00073 const std::string& shortname, 00074 const FrameInfo& auxinfo = 00075 FrameOstream::defaultInfo); 00076 00077 //! Do nothing 00078 virtual void closeStream(const std::string& shortname); 00079 00080 // Just use the default versions of everything else from FrameOstream. 00081 }; 00082 00083 // ###################################################################### 00084 /* So things look consistent in everyone's emacs... */ 00085 /* Local Variables: */ 00086 /* mode: c++ */ 00087 /* indent-tabs-mode: nil */ 00088 /* End: */ 00089 00090 #endif // MEDIA_NULLOUTPUTSTREAM_H_DEFINED